2014-10-31 49 views
0

每當我嘗試加載除下面給出的特定圖像'1.bmp'之外的任何其他圖像時,會顯示以下錯誤:
使用圖像 錯誤真彩色CData的包含元素超出範圍0.0 < =值< = 1.0我需要加載圖像到一個簡單的圖形用戶界面在MATLAB中進行指紋識別,但只有一個圖像被成功加載

錯誤於imagesc(線19) HH =圖像(varargin {1}, 'CDataMapping', '比例') ;

錯誤而評估uicontrol回調

用於圖像加載到GUI中的代碼如下:

function image1=loadimage 

[imagefile1 , pathname]= uigetfile('*.bmp;*.BMP;*.tif;*.TIF;*.jpg','Open An Fingerprint image'); 
if imagefile1 ~= 0 
cd(pathname); 
image1=readimage(char(imagefile1)); 
image1=255-double(image1); 

end; 

是否有代碼中的一個問題還是因爲圖像尺寸和分辨率的?

其被成功加載的圖像是: [指紋(300 * 300)]

回答

0

的錯誤不是在你提供,但試圖顯示圖像時發生的代碼。

沒有看到代碼我不能肯定地說,但我懷疑你試圖顯示image1,它仍然是圖像RGB數據(即nxmx3矩陣)。但是,您已完成image1=255-image1。 因此,RGB數據將不再位於0-255範圍內。

Imagesc和大多數其他matlab顯示功能可以顯示灰度圖像或RGB值範圍0-255。如果它們不在這個範圍內,則會引發錯誤。

要麼在減法之前顯示圖像,要麼在顯示之前將其轉換爲灰度。

相關問題