GUI ...I have called one image on axes1 with the help of one push button..now how to call first image on axes2 with the help of second push button..??

1 回表示 (過去 30 日間)
I have called one image on axes1 with the help of one push button.. with the help of second push button again i call image, conversion apply on it.. but when i am click second push button then again all image open steps are doing.. directly push button not taking reference of axes1 image for axes2.. what i do??
  4 件のコメント
Ben11
Ben11 2014 年 8 月 12 日
As Joakim I didn't quite understand, but you might want to use the 'parent' property of imshow to display the right image on the right axes:
eg:
imshow(image_gray,'Parent',handles.axes2);
imshow(D,'Parent',handles.axes3);
So is your problem that only the first image (image_gray) is displayed in the first axes?
kanu
kanu 2014 年 8 月 12 日
it's right but i think get function is used for calling one image from axes1 to axes2

サインインしてコメントする。

採用された回答

Geoff Hayes
Geoff Hayes 2014 年 8 月 12 日
Kanu - if you want to avoid opening the file browser a second time and take the image directly from the first axes, then what you can do is save the image data to the handles structure using guidata. Modify the callback for your first push button as
function open_Callback(hObject, eventdata, handles)
[filename, pathname] = uigetfile('*.m', 'Pick a MATLAB code file');
if isequal(filename,0)
disp('User pressed cancel')
else
a = imread(filename);
axes(handles.axes1);
imshow(a);
title('original image');
% now update the handles structure with the image
handles.imgData = a;
% save the handles data
guidata(hObject,handles);
end
Now, the image data is available wherever your code has access to the handles structure. So in your second button callback, do
function conversion_Callback(hObject, eventdata, handles)
% check to make sure that the image data exists in handles
if isfield(handles,'imgData')
% grab the image data from handles
I = handles.imgData;
image_gray=rgb2gray(I);
axes(handles.axes2);
imshow(image_gray);
ginv = imcomplement (image_gray);
adahist = adapthisteq(ginv);
L = medfilt2(adahist,[3 3]);
D = medfilt2(L,[3 3]);
axes(handles.axes3);
imshow(D);
title('filtered image');
end
So the above is similar to your code with the exception of the file browsing being replaced with the access to the image data from handles.
Try the above and see what happens!
  2 件のコメント
kanu
kanu 2014 年 8 月 12 日
hey Geoff Hayes, thanks... result come correct..now i directly convert my image in other filters..no need to call image again and again..
Manu BN
Manu BN 2015 年 5 月 13 日
even I was stuck in the same place, thank you Mr. Hayes

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeInteractive Control and Callbacks についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by