首页 > 解决方案 > MATLAB GUI 句柄

问题描述

我对在 Matlab 回调函数中使用“句柄”有疑问。我不知道如何使用相同的东西两次。请帮我。

所以,我建立了 Matlab GUI,我有上传图像的回调函数:

function pushbutton2_Callback(hObject, eventdata, handles)

handles = guidata(hObject); 
[filename pathname]=uigetfile({'*.jpg';'*.bmp'},'File Selector'); 
image=strcat(pathname, filename)
handles.data1=imread(image)
axes(handles.axes1);
imshow(handles.data1);
set(handles.edit1,'string',filename)
set(handles.edit2,'string',pathname)
guidata(hObject, handles);

,并且我有将相同图像转换为“灰度”的回调函数:

function Gray_Callback(hObject, eventdata, handles)

handles = guidata(hObject); 
axes(handles.axes2);
img=handles.data1;
x=imread(img);

y=rgb2gray(x); %function to convert an rgb image to gray scale

imshow (y)
guidata(hObject, handles);

,但它不起作用。

有谁知道我做错了什么?

标签: matlabmatlab-guidehandlematlab-guiobjecthandles

解决方案


你的第一个功能说

handles.data1=imread(image)

然后你的第二个功能说

img=handles.data1;
x=imread(img);

由于img包含图像数据,而不是文件名,这是什么imread(img)意思?

我想你想在img这里直接使用图像数据,根本不使用imread


推荐阅读