2010-04-06 131 views
9
​​

上面的代碼總是顯示一個全黑的圖像。它出什麼問題了?如何在MATLAB中加載和顯示PNG圖像?

我使用的圖像是這個:

alt text http://internationalpropertiesregistry.com/Server/showFile.php?file=%2FUpload%2FSecCode.php.pngffe2c2ae5fd4fffb0c9bc4a75bde89da.png

+2

MATLAB代碼看起來不錯。你確定該文件不包含全部黑色嗎?你有沒有在另一個圖像查看器打開它檢查? – gnovice 2010-04-06 16:34:14

+0

是的,圖像是好的 – user198729 2010-04-06 16:40:16

+0

你能添加圖像的帖子?我感覺存在引起問題的圖像格式的問題,爲了幫助您,我們可能需要查看它。 – gnovice 2010-04-06 16:54:50

回答

12

唉唉,我現在看到。問題是你有一個indexed image,並且需要從IMREAD獲得colormap參數。試試這個:

[I,map] = imread('D:\Works\matlab\SecCode.php.png','png'); 
imshow(I,map); 

在MATLAB中可以找到不同類型圖像的描述here。以下是一個簡要的:

  • Binary images:圖像是一個logical陣列,其中每個像素具有值0或1。
  • Indexed images:在圖像存儲索引的像素劃分爲顏色表,這是一個M-逐個RGB值的數組。色彩映射通常與索引圖像一起存儲在圖像文件中。
  • Grayscale images:圖像中的像素每個都包含表示強度的單個值。
  • Truecolor images:圖像是一個M×N×3的陣列,其中每個像素都具有紅色,綠色和藍色的顏色分量。
+0

這是你的意思**索引**:http://en.wikipedia.org/wiki/Indexed_color? – user198729 2010-04-06 17:11:40

+0

@ user198729:是的,這就是我的意思。我也爲你添加了一些MATLAB文檔鏈接。 – gnovice 2010-04-06 17:24:37

+0

謝謝,您還可以詳細介紹一下這張圖片,該圖片位於您的鏈接中:http://www.mathworks.com/access/helpdesk/help/toolbox/images/introa.gif – user198729 2010-04-06 17:33:04