MATLAB GUI句柄

时间:2019-01-20 17:18:02

标签: matlab matlab-guide handle matlab-gui objecthandles

我对在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);

,但不起作用。

有人知道我在做什么错吗?

1 个答案:

答案 0 :(得分:3)

您的第一个功能说

handles.data1=imread(image)

然后您的第二个功能说

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

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

我假设您想在这里直接使用图像数据img,而不要完全使用imread