作者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
推 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)
推 vincent59:如果之後沒有要再做處理的話 imshow(uint8(mix))就好了 12/20 23:59
推 newton2009:!! 12/22 00:34
→ fxxkjoe1231:樓上方丈 12/25 18:38