MATLAB GUI 句柄
MATLAB GUI handles
我对在 Matlab 回调函数中使用 "handles" 有疑问。
我不知道如何使用相同的东西两次。请帮助我。
所以,我构建了 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);
,并且我有将相同图像转换为 "Gray Scale":
的回调函数
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);
,但是没用。
有谁知道我做错了什么?
你的第一个函数说
handles.data1=imread(image)
然后你的第二个函数说
img=handles.data1;
x=imread(img);
由于img
包含图像数据,而不是文件名,imread(img)
是什么意思?
我猜你想在这里直接使用图像数据 img
,根本不使用 imread
。
我对在 Matlab 回调函数中使用 "handles" 有疑问。 我不知道如何使用相同的东西两次。请帮助我。
所以,我构建了 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);
,并且我有将相同图像转换为 "Gray Scale":
的回调函数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);
,但是没用。
有谁知道我做错了什么?
你的第一个函数说
handles.data1=imread(image)
然后你的第二个函数说
img=handles.data1;
x=imread(img);
由于img
包含图像数据,而不是文件名,imread(img)
是什么意思?
我猜你想在这里直接使用图像数据 img
,根本不使用 imread
。