Ручки MATLAB GUI - PullRequest
       19

Ручки MATLAB GUI

0 голосов
/ 20 января 2019

У меня есть вопрос об использовании «ручек» в функции обратного вызова Matlab. Я не знаю, как использовать одну и ту же вещь дважды. Пожалуйста, помогите мне.

Итак, я строю графический интерфейс Matlab и у меня есть функция обратного вызова для загрузки изображения:

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 голосов
/ 21 января 2019

Ваша первая функция говорит

handles.data1=imread(image)

Тогда ваша вторая функция говорит:

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

Поскольку img содержит данные изображения, а не имя файла, что означает imread(img)?

Я предполагаю, что вы хотите работать непосредственно с данными изображения img здесь, а не использовать imread вообще.

...