hyper-spectral图像显示在不正确的颜色显示在蓝色
2视图(30天)
显示旧的评论
你好!。我是新matlab,
我用multibandread显示特定频段的高光谱图像和光谱剖面(生或佛罗里达州或使用int),
我的问题是
1:图像显示而不是正常的颜色,它显示在蓝色(添加相关图片和代码)
2:我想每个乐队的光谱资料(我已经代码中的情节,但我得到的频谱似乎不像z-profile我从环境中获得)
3:我可以显示在颜色吗?
(注意我使用Matlab R2016a R2018a)
下面是我的代码
非常感谢
![](http://www.tatmou.com/matlabcentral/answers/uploaded_files/194859/image.png)
文件名=“fvf01.fla”;
行= 1040;
样品= 1392;
乐队= 31;
数据类型=“uint16”;
抵消= 0;
交错=“bsq”;
byteorder =“ieee-le”;
bandtoread = 10;
bandname = sprintf (“带% d ',bandtoread);
img = multibandread(文件名、行、样品、乐队,…
数据类型、抵消、交错、byteorder…
{“乐队”,“直接”,bandtoread});
显示亮度图像(img);
标题(bandname);
接受的答案
Guillaume
2018年11月14日
很抱歉我努力明白你问我的回答可能是完全的。
我认为你最好加载整个高光谱图像作为一个三维矩阵,然后如果你想看一个特定的乐队,只是选择相关的3 d矩阵。这将会是这样的:
文件名=“fvf01.fla”;
行= 1040;
样品= 1392;
乐队= 31;
数据类型=“uint16”;
抵消= 0;
交错=“bsq”;
byteorder =“ieee-le”;
img = multibandread(文件名、行、样品、乐队,…
数据类型、抵消、交错、byteorder);%阅读整体形象
% img应该是1040 x 1392 x 31矩阵
%查看一个特定的乐队
bandtoshow = 10;
imshow (img (:,:, bandtoshow));
标题(sprintf (“带% d 'bandtoshow));
注意,我使用
imshow
显示乐队,而不是
显示亮度图像
。
imshow
默认为一个灰度colourmap而
显示亮度图像
使用
帕累托
。你总是可以改变colourmap如果你使用
显示亮度图像
:
显示亮度图像(img (:,:, bandtoshow));
colormap(灰色);
我不认为有一个函数来显示多光谱图像在matlab与多光谱图像(但我不工作)。你可以做一个简单的gui,它可以让你看到每个单独带:
图;
himg = imshow (img (:,: 1));
hcontrol = uicontrol (“风格”,“popupmenu”,“字符串”组成(“带% d '1:乐队),“位置”(50 80 20),“回调”@ (hcontrol ~)集(himg,CData的img (::, hcontrol.Value)));
如果你想看到一个像素在乐队的形象,简单的索引你的3 d矩阵:
pixelrow = 50;
pixelcolumn = 20;
图;
情节(挤压(img (pixelrow、pixelcolumn:)));
标题(sprintf (的频谱在x = % d, y = % d '、pixelcolumn pixelrow));
这是你画上所有的光谱沿着给定的行:
行= 100;
图;
情节(挤压(img(行,:,)));
传奇(组成(“带% d '1:乐队));
标题(sprintf (“沿着行% d谱”、行));
希望,这可以帮助你做你想做的事情。
答案(1)
R阿卡什
2020年6月22日
嗨
我想画一个光谱的高光谱图像捕获使用SpecimIQ相机。使用上述代码来画出频谱的我不能得到任何输出。
使用相同的代码如上所述。
图;
情节(挤压(图片(pixelrow1、pixelcolumn1:)));
标题(sprintf (的频谱在x = % d, y = % d '、pixelcolumn1 pixelrow1));
我的图片尺寸512 * 512,有204个乐队。
但输出光谱剖面显示空白的输出。
![](http://www.tatmou.com/matlabcentral/answers/uploaded_files/320311/image.jpeg)