How to Open file with GUI's axes multiple times?
    5 views (last 30 days)
  
       Show older comments
    
Hi,
With the code below i'm able to read a file via GUI when a button is pressed. The code pop out a windows that enable user to search for file. However now, instead of using a push botton, i want to use axes. when user click on an axes, a pop out window will come out asking user to search for file (similar to File>> Open File), then display the image on my axes. How do i write the code for my axes function?
function btnGetFile_Callback(hObject, eventdata, handles)
% hObject    handle to btnGetFile (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global fullpath;
[filename,pathname]= uigetfile(...
    {'*.bmp;*.jpg;*.jpeg;*.tif;*.tiff;*.png','All Image Files(*.bmp,*.jpg,*.jpeg,*.tif,*.tiff,*.png)';...
    '*bmp','bitmap Files (*.bmp)';...
    '*.jpg;*.jpeg','JPEG Files(*.jpg,*.jpeg)';...
    '*.tif;*.tiff','Tiff Files(*.tif,*.tiff)';...
    '*png','PNG Files (*.png)';...
    '*.*','All Files (*.*)'}, ...
    'Pick an image file');
fullpath = sprintf('%s%s',pathname, filename);
set(handles.editFile, 'string',fullpath);
Thanks
0 Comments
Accepted Answer
  Paulo Silva
      
 on 9 Jul 2011
        % --- Executes on mouse press over axes background.
function axes1_ButtonDownFcn(hObject, eventdata, handles)
% hObject    handle to axes1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
[FileName,PathName] = uigetfile({'*.jpg';'*.bmp';'*.gif';'*.tif'},'Select the image')
cb=get(gca,'ButtonDownFcn');
if (~strcmp(class(FileName),'double'))
A = imread(fullfile(PathName,FileName));
imagesc(A)
end
%restore the ButtonDownFcn of the axes that imagesc removed
set(gca,'ButtonDownFcn',cb)
set(get(gca,'Children'),'ButtonDownFcn',cb)
5 Comments
  Paulo Silva
      
 on 9 Jul 2011
				It's fixed on my answer, what happens is that imagesc removes the ButtonDownFcn from the axes and the image that appears on the axes is children of that axes so it has it's own ButtonDownFcn, my code solves it.
More Answers (0)
See Also
Categories
				Find more on Environment and Settings in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
