我一直試圖在瀏覽它後顯示圖像。但是,我一直在收到如下錯誤:在gui中的Matlab顯示圖像
???引用不存在的字段'axes1'。 Error ==> ImGui> Browse_Callback at 19 axes(handles.axes1) ???錯誤,同時評估uicontrol回調
我已經嘗試使用兩個預定義軸[像'axes(handles.axes1);']以及後定義[像'imshow(imgorg,'父',句柄。 axes1);']。不幸的是,這兩種技術都不適合我,我一直堅持使用軸。我也嘗試製作一個定製的座標軸並使用它,但它也未能在圖上顯示我的圖像。任何人都可以在我的代碼中找出/糾正問題:
function ImGui
f =figure('Visible','on','Position',[460,200,700,385]);
BrowseBt = uicontrol('Style','pushbutton',...
'String','Browse','Position',[600,350,70,25],...
'Callback',@Browse_Callback);
dispnames = uicontrol('Style','text','String','',...
'Position',[50,350,400,20]);
movegui(f,'center');
function Browse_Callback(hObject, eventdata, handles)
handles.output = hObject;
[FileName,PathName] = uigetfile('*.jpg;*.png','Select an image file',...
'C:\Users\owner\Downloads\Conjunctiva\SGRH');
fpname = strcat(PathName,FileName);
dispnames = uicontrol('Style','text','String',fpname,...
'Position',[50,350,400,20]);
imgorg = imread(fpname);
handles.output = hObject;
guidata(hObject, handles);
axes(handles.axes1);
imshow(imgorg);
% ImAxes = axes('Parent', f, ...
% 'Units', 'normalized', ...
% 'position',[50 50 400 250]);
% 'HandleVisibility','callback', ...
% imshow(imgorg, 'Parent', handles.axes1);
% imshow(imgorg, 'Parent', handles.ImAxes);
end
end
謝謝Hoki。有效。需要一個小小的改進,我應該怎麼做才能使ImAxes只有在Gui上顯示圖像時纔可見? – Hasan 2014-10-12 11:54:02
@Hasan。我編輯了答案。創建時只需將「visible」屬性設置爲「off」,然後只在需要時才顯示它。 – Hoki 2014-10-12 12:06:41
這太棒了。現在會導致另一個問題:我必須將Browse_Callback函數中讀取的圖像傳遞給另一個函數。我試圖這樣做,我創建另一個按鈕,並在其點擊後,我必須將圖像傳遞到下一個函數: handles.AnalyzeBt = uicontrol('Style','pushbutton',... 'String ','分析',... 'Callback',@ Analyze_Callback); guidata(hObject,handles); 函數Analyze_Callback(hObject,eventdata,imgorg) handles = guidata(hObject); rim = imgorg(:,:,1); – Hasan 2014-10-12 12:23:40