2014-10-31 2 views
0

아래 주어진 특정 이미지 '1.bmp'를 제외한 다른 이미지를로드하려고 할 때마다 다음 오류가 표시됩니다 :
화상 를 사용 오류 트루하지만 CDATA 범위 외의 원소를 함유 0.0 < = 값 < = 1.0MATLAB에서 지문 인식을위한 간단한 GUI로 이미지를로드해야하지만 하나의 이미지 만 성공적으로로드되었습니다.

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

오류는 제공하지만, 화상을 표시 할 때 발생하는 코드 아니다.

코드를 보지 않고도 확실하게 말할 수는 없지만 이미지 RGB 데이터 (예 : nxmx3 매트릭스) 인 image1을 시도하고 표시 한 것으로 의심됩니다. 그러나 image1=255-image1을 완료했습니다. 따라서 RGB 데이터는 더 이상 0-255 범위에 있지 않습니다.

Imagesc 및 대부분의 다른 matlab 디스플레이 기능은 그레이 스케일 이미지 또는 0-255 범위의 RGB 값을 표시 할 수 있습니다. 이들이이 범위에 있지 않으면 오류가 발생합니다.

이미지를 뺄셈 전에 표시하거나 표시하기 전에 그레이 스케일로 변환하십시오.

관련 문제