2015-10-19 70 views
0

我在Matlab中輸入了雙精度圖像。我怎樣才能imshow呢?謝謝。在Matlab中顯示圖像類型Double

load('file.mat'); 
b=d.l{2,1}.a{1,1}; %//b is an image <96x96x4 double> 
imshow(b); 
+3

'imshow'不支持顯示4通道圖像。這幅圖像應該代表什麼? – rayryeng

+0

如果你的圖像是'NxMx3',並且你在評論中輸入了錯字,使用'imshow(b,[])'來自動調整'imshow'函數的限制 –

回答

1

作爲@rayryeng表明,imshow不喜歡4倍信道的圖像。因此:

如果您的圖像是NxMx3,並且您在評論中輸入了錯字,請使用imshow(b,[])自動調整imshow函數的限制。

如果你的第4通道是α,則要麼忽略阿爾法:imshow(b(:,:,1:3),[])

或者,從RGBA轉換你的圖像在RGB最接近的表示。你可以做到這一點與一些所謂的alpha blending,你必須在這個SO後一個很好的答案(在另一種編程語言):Convert RGBA color to RGB

如果這些都不是你的話,那麼你可能需要提供更多的信息。

+0

是的,你是正確的Ander Biguri。它在我忽略Alpha通道時起作用。謝謝。 – Dani

+0

怎麼樣如果我想顯示一個圖像25x25雙倍而不是96x96x4。我試圖使用imshow函數,但它不起作用,並顯示如下錯誤:索引超出矩陣的尺寸。謝謝 – Dani

+0

@Dani圖像的大小在'imshow'中沒有絕對的影響,所以如果它不起作用,還有另外一個原因。 –