2013-06-13 2 views
0
[fname1 path] = uigetfile('*.*','open image file');%*.* 
[path,name,ext,ver] = fileparts(fname1); 
handles.fname = strcat(name,ext); 
a = imread(handles.fname); 
r = imresize(a,[256,256]); 
file = 'C:\Main CBIR\query images\r.bmp'; 
[fname,map] = rgb2ind(r,32); 
imwrite(fname,map,file); 

위의 코드는 지정된 경로/폴더에 r이라는 이름의 이미지 (BMP)를 저장합니다. 하지만 어떻게 이미지를 자체 이름으로 저장합니까? 나는 위의 코드를 사용하여 rose.bmp을 저장하는 방법 이름을 입력하면 이미지가 rose.jpg 의미합니까? 위의 코드 대신 r.bmp으로 이미지를 저장합니다. 어떻게해야합니까?MATLAB에서 Imwrite 명령 사용

답변

2

name에 저장된 파일 이름 (예 : 'rose')이 fileparts에서 반환되었습니다.

file = fullfile('c:', 'Main CBIR', 'query images', [name, '.bmp']); 
+0

위의 코드에서 imwrite (fname, map, file); 명령 뒤에'imread'를 사용하면 고맙겠습니다. 오류가 발생했습니다. b = imread (fname);'사용 오류 ==> strfind' '입력 문자열은 한 행을 가져야합니다. ' '오류 ==> 329' '하다면 imread (strfind (파일 이름 '//')); Y ' 이 ==의'' 오류> CBIR_MJP> insert_Callback 97' 'B = imread (FNAME)에서 오류? – Chethan

+0

코드를 직접 가져와야합니다. 'name'은 문자열이므로'file'입니다. . 그러나'fname'은 문자열이 아니며'imread'의 입력으로 사용할 수 없습니다. 'imread (file); 시도하십시오. – Shai

+0

'imread (file)'도 오류가납니다. '??? ==>'fileparts at 17'을 사용하는 중 오류 '입력은 행의 문자 벡터 여야합니다. ' 'Pre_processing> Pre_processing_OpeningFcn at 60' '[path, name, ext, ver] = fileparts (FNAME) '는 '==에서 오류> gui_mainfcn가 221' 'feval (gui_State.gui_OpeningFcn, gui_hFigure []'guidata (gui_hFigure) varargin {})로,' *이 파일 * 단지 포함 * bmp * image 내 생각에,이 명령을 실행 한 후에는'imwrite' 바로 위 코드에서 볼 수 있듯이 * index *로 변환됩니다. 그러나 나는 지정된 폴더에 저장된 이미지를 읽고 싶다. – Chethan