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..??

6 vues (au cours des 30 derniers jours)
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 commentaires
Ben11
Ben11 le 12 Août 2014
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 le 12 Août 2014
it's right but i think get function is used for calling one image from axes1 to axes2

Connectez-vous pour commenter.

Réponse acceptée

Geoff Hayes
Geoff Hayes le 12 Août 2014
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 commentaires
kanu
kanu le 12 Août 2014
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 le 13 Mai 2015
even I was stuck in the same place, thank you Mr. Hayes

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Creating, Deleting, and Querying Graphics Objects dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by