作者fxxkjoe1231 (糟糕)
看板MATLAB
标题[问题] 多张单色影像合成RGB影像
时间Thu Dec 20 02:00:09 2012
各位好,小弟目前手边有三张对於同一地区以不同波段摄影所得到的单色影像,
每个影像都是8bits的RAW档。
目前欲把这三张单色影像合成一张RGB影像,程式码如下
---
R=fopen('SPOTBand2Red.raw','r');
Rm=fread(R,[1000 800],'uint8');
fclose(R);
Rm=Rm';
NIR=fopen('SPOTBand3NIR.raw','r');
NIRm=fread(NIR,[1000 800],'uint8');
fclose(NIR);
NIRm=NIRm';
G=fopen('SPOTBand1Green.raw','r');
Gm=fread(G,[1000 800],'uint8');
fclose(G);
Gm=Gm';
mix=zeros(800,1000,3);
for i=1:800
for j=1:1000
mix(i,j,1)=NIRm(i,j);
mix(i,j,2)=Rm(i,j);
mix(i,j,3)=Gm(i,j);
end
end
---
做到这步之後,检视mix阵列中的值,可以确定Rm, NIRm及Gm的值已经写入,
然而我欲以
imshow(mix)
来以彩色的RGB影像显示时,却会出现以下讯息
Warning: Image is too big to fit on screen; displaying at 67%
> In imuitools\private\initSize at 73
In imshow at 262
然後就会出现一张800*1000的空白影像,每个pixel的值都是一。
想请问版上各位先进,是哪里出了问题呢?先谢过各位大大了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.35.26
1F:推 olliekr:imshow之前试试看先uint8(mix)吧 12/20 07:24
还是一样,出现一张全白的图,以及相同的错误讯息
※ 编辑: fxxkjoe1231 来自: 140.115.35.26 (12/20 13:00)
後来发现mix=uint8(mix)才会将mix阵列内的值都变成uint8後
就可以汇出彩色图片了,谢谢OLL大
※ 编辑: fxxkjoe1231 来自: 140.115.35.26 (12/20 18:13)
2F:推 vincent59:如果之後没有要再做处理的话 imshow(uint8(mix))就好了 12/20 23:59
3F:推 newton2009:!! 12/22 00:34
4F:→ fxxkjoe1231:楼上方丈 12/25 18:38