我怎么情节上的视图矩阵和代表强度的颜色?

2视图(30天)
我想代表云的影子强度在地上。我开发了一个中点位移算法生成3 d分形表面。这个算法返回值的高度H matricial形式,尺寸等于257 x 2570。所以,我使用contourf函数绘制生成的分形和水平面之间的十字路口。由此产生的十字路口对于不同的水平面Z值显示在下面的图中,代表5层相同的分形图像,我想呈现。
除此之外,我想使用值介于0和1之间,所以我可以使用weigthed算术方法来表示阴影强度,一旦云更不透明的中心和更少的不透明边界。通过这种方式,我用下面的代码来编写新的S矩阵表示每个层。为了简便起见,我只是展示我获得第一层。其他四层以类似的方式获得的,但他们的结果在矩阵比第一个1。计算之间的weigthed算术意味着5矩阵,结果是一个矩阵值介于0和1之间。
cc = 1: (F (N + 1) *)%计算列
cl = 1 (N + 1):%计算行
如果P (cl, cc) < plane_z1%如果值为P的价值低于飞机Z返回1
S1 (cl, cc) = 1;
cont_S1 = cont_S1 + 1;
其他的%如果值为P的值大于飞机Z返回0
S1 (cl, cc) = 0;
结束
结束
结束
现在,我想把这个新矩阵,这是一个平均的五层显示,和每个像素代表的规模。我只是想要一个规模代表黑暗的每个像素。此外,我想代表值等于0的白颜色。通过这种方式,我也想建立一个越来越黑暗colormap值大于0小于1,直到值等于1表示与黑色的颜色。
这两个问题是:
1)如何情节上产生的平均视图矩阵在2 d维度(如我上面显示的层),有一次,我不会使用contourf函数吗?
2)我怎么设置colormap我上面描述的吗?
我很感谢任何帮助!

接受的答案

郑宇硕
郑宇硕 2021年6月5日
编辑:郑宇硕 2021年6月5日
这里有一个例子,我思考你在做什么。与加权平均不确定自己在做什么,但我想我做了一件,你可以适应吗?不太清楚你的意思什么阴谋这层的新矩阵但给你。
% % Matlab答案测试脚本
% % noiseonf matlab函数。米从< //www.tatmou.com/matlabcentral/answers/217417-how-fourier-synthesis-is-performed-using-matlab >检索
%使用noiseonf常规的物质
%彼得Kovesi生成虚拟云图片:
% (c) 1996 - 2005年彼得Kovesi版权
%学院计算机科学与软件工程
西澳大利亚大学的%
% http://www.csse.uwa.edu.au/
%下载链接似乎被打破,所以访问matlab上面的答案
%这里是一些虚拟的图像数据生成的,因为我们只是为了演示
%现在可以运行代码!
行= 258;
列= 2570;
系数= 1.7;
我= randn(行、列);
imfft = fft2 (im);%的fft的形象。
imfft = fftshift (imfft);% 0频率转移到中间。
杂志= abs (imfft);%得到大小
阶段= imfft. /杂志;%和阶段
x = 1(行,1)*(列/ 2:(列/ 2 - 1));
y =(行/ 2:(行/ 2 - 1))的*的(1、列);
半径=√x。^ 2 + y ^ 2);%矩阵值包含来自中心的半径。
半径(行/ 2 + 1,列/ 2 + 1)= 1;% . .避免除零。
过滤器= 1. /(半径。^因素);%构造滤波器。
newfft =过滤器。*阶段;
grayImage =实际(ifft2 (fftshift (newfft)));%转化获得最终的噪声图像
grayImage = grayImage-min (grayImage (:));
grayImageN = grayImage. / max (grayImage (:));
%现在虚拟图像设置为值在0和1之间
%可以展示如何改变颜色映射到暗= 1 = 0
图(1)中,clf,
colormap灰色的%不确定这里的需要但是网络实现需要灰度
斧子(1)=次要情节(211);%保存次要情节轴柄colormap分配颜色映射
显示亮度图像(grayImageN) colormap (ax (1),“灰色”),%的原始colormap 0黑暗:1点燃
标题(“原始地图”)
colorbar
提出= colormap;
斧子(2)=情节(212);;
显示亮度图像(grayImageN)、标题(“翻转彩色地图”),colorbar
colormap (ax (2), flipud城市规划机构(cmap))%翻转colormap desination颠倒
%层不需要循环检查每个像素
zPlaneVals = [。1。3。5。7。9);%的层使用
Splane = 0(行、列元素个数(zPlaneVals));%为层预先分配内存堆栈
图(2)中,
林德= 1:元素个数(zPlaneVals)%层指数
TempBinImg = 0(大小(grayImageN));%临时零形象
%,因为在你的例子只有当原始图像的值设置为1
否则我们已经% <阈值设置为0。
TempBinImg (grayImageN < zPlaneVals(林德))= 1;%替代临时图像索引值<阈值
Splane(:,:,林德)= TempBinImg;%这个存储到堆栈
Sax(林德)=次要情节(元素个数(zPlaneVals), 1,林德);%创建次要情节
显示亮度图像(Splane(:,:,林德)),colormap (Sax(林德)flipud城市规划机构(cmap));%显示图像和翻转colorbar
标题([“< Zplane踹谷”num2str (zPlaneVals(林德))))
WeightSplanes(:,:,林德)= zPlaneVals(林德)* Splane(:,:,林德);%保存一些假体重应用层
结束
WeightedPlane = (WeightSplanes 3) /金额总和(zPlaneVals);%应用图像分层的重量之和除以重量的总和
图,显示亮度图像(WeightedPlane), colormap灰色的colormap (flipud城市规划机构(cmap)), colorbar
1评论
埃里克·伯纳德•迪尔格
嘿,约瑟夫,谢谢你的支持。金宝app它真的很有用!
我不知道关于显示亮度图像的功能。这似乎是工作!下图表示的平均层五层我在说什么。谢谢你!

登录置评。

更多的答案(0)

类别

找到更多的在Colormaps帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!