Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

New to MATLAB?

how can i browse an image in gui

Asked by Usama Javed

Usama Javed (view profile)

on 5 Jan 2012
Latest activity Commented on by Image Analyst

Image Analyst (view profile)

on 6 Feb 2015

how can i browse an dicom image in matlab gui???

0 Comments

Usama Javed

Usama Javed (view profile)

Products

No products are associated with this question.

8 Answers

Answer by Chandra Kurniawan

Chandra Kurniawan (view profile)

on 9 Jan 2012
Accepted answer

Hi, Usama

Here I give you sample code with GUIDE.

First, you need to create your GUI.

Type 'guide' in command window, and select 'blank GUI'

Then design your GUI. Your GUI must contains Axes, Pushbutton, and Edit as shown in the picture bellow

And type this code at 'pushbutton1_Callback'

function pushbutton1_Callback(hObject, eventdata, handles)
handles.output = hObject;
[fn pn] = uigetfile('*.dcm','select dicom file');
complete = strcat(pn,fn);
set(handles.edit1,'string',complete);
I = dicomread(complete);
imshow(I,[]);
guidata(hObject, handles);

I hope this clear.

11 Comments

Chandra Kurniawan

Chandra Kurniawan (view profile)

on 9 Jan 2012

Please tell me the size of your dicom image by typing

size(I) in command window.

Usama Javed

Usama Javed (view profile)

on 9 Jan 2012

512 * 512

Usama Javed

Usama Javed (view profile)

on 23 Jan 2012

hi,
can you tell me how can i get that address from edit text box.

Chandra Kurniawan

Chandra Kurniawan (view profile)

Answer by Junaid

Junaid (view profile)

on 5 Jan 2012

Dear Usman,

If I understand you correct. You mean how to browse image from GUI right?

If yes then it is as follow:

a=imgetfile;

where a is your image.

1 Comment

Usama Javed

Usama Javed (view profile)

on 5 Jan 2012

actually i m trying to read an image from browse control.. i-e
there will be an edit text control and a push button(browse Button).. the path will set in that edit text box so that i can read an image at that path

Junaid

Junaid (view profile)

Answer by Image Analyst

Image Analyst (view profile)

on 5 Jan 2012

Try MAGIC:

http://www.mathworks.com/matlabcentral/fileexchange/24224

Description

This GUI will help the novice user get up to speed very quickly on using GUI-based applications. Everything is laid out in a very simple Step 1, Step 2, Step 3, etc. layout. It is a very good starting point for a typical image analysis application. This application uses GUIDE to do the user interface design, and has most of the basic controls such as buttons, listboxes, checkboxes, radio buttons, scrollbars, etc. It allows the user to select a folder of images, select one or more images and display them, to select a series of options, and to individually or batch process one or more images. The user can optionally apply a mask (region of interest) to the image so that only the area within the mask will be analyzed. The results are optionally sent to Excel. In this demo, I do some very basic particle sizing but in use, the user would replace that simple demo code in the function AnalyzeSingleImage() with their own code. Works with Windows or Unix since paths are all forward slashes. Requires the Image Processing Toolbox to do the simple particle sizing demo, but if you delete that demo code before using it, then the IP toolbox would not be required and it would still demonstrate the basic GUI-based file processing functionality.

0 Comments

Image Analyst

Image Analyst (view profile)

Answer by Chandra Kurniawan

Chandra Kurniawan (view profile)

on 5 Jan 2012
[fn pn] = uigetfile('*.dcm','select dicom file');
complete = strcat(pn,fn);
set(handles.edit1,'string',complete);
I = dicomread(complete);

2 Comments

Usama Javed

Usama Javed (view profile)

on 8 Jan 2012

??? Undefined function or variable 'handles'.

Error in ==> Untitled at 3
set(handles.edit1,'string',complete);

Chandra Kurniawan

Chandra Kurniawan (view profile)

on 9 Jan 2012

Hi,
Here, I Just give you little hint.
Of course you cannot apply my code directly to your script.
You need to do your own modification.

Chandra Kurniawan

Chandra Kurniawan (view profile)

Answer by Seema

Seema (view profile)

on 24 Mar 2012

Hi Chandra, I executed the above code & it's working for me. But could u plz tell me which line in ur code enables the image selected to be displayed in the axes. Actually I'm not able to understand the meaning of the line "handles.output = hObject; [fn pn] = uigetfile('*.dcm','select dicom file'); "

Regards, Seema

1 Comment

Image Analyst

Image Analyst (view profile)

on 25 Mar 2012

The "getfile()" line gets the filename (a string). imread() reads in the image from disk into a variable in your program. The "imshow()" line is the line that does the actual displaying of the image.

Seema

Seema (view profile)

Answer by msp

msp (view profile)

on 12 Apr 2013

how to get path of uigetfile?

1 Comment

Image Analyst

Image Analyst (view profile)

on 12 Apr 2013

You posted this as an answer to Usama's question, but it's obviously not an answer to his question. So, if it's supposed to be a comment or followup question on one of the actual answers, whose answer are you commenting on? If you intended this to be a brand new discussion question of your own, then please post it as a new question, not as an answer.

msp

msp (view profile)

Answer by Muthukumar Thangam on 7 Sep 2013
% Try this for browse and load jpg images
  % code
function pushbutton1_Callback(hObject, eventdata, handles)
handles.output = hObject;
[fn pn] = uigetfile('*.jpg','select jpg file');
complete = strcat(pn,fn);
set(handles.edit1,'string',complete);
I = imread(complete);
imshow(I,[]);
guidata(hObject, handles);

4 Comments

Image Analyst

Image Analyst (view profile)

on 3 Apr 2014

imshow() displays it. imread() "saves" the image from disk to a variable in your program.

kiran

kiran (view profile)

on 4 Apr 2014

i think you have misunderstood my question.

if true
  % code
function pushbutton1_Callback(hObject, eventdata, handles)
handles.output = hObject;
[fn pn] = uigetfile('*.jpg','select jpg file');
complete = strcat(pn,fn);
set(handles.edit1,'string',complete);
I = imread(complete);
imshow(I,[]);
guidata(hObject, handles);
end

this is the code i used to browse the image when i click the pushbutton on the gui. now when i click the browse button i need to select an image from the drive, i need to display the image and i need to save the image to a variable so that i will be able to use it when i click the convert button.

Image Analyst

Image Analyst (view profile)

on 4 Apr 2014

I did answer the original questions about how to display (use imshow) and how to put the image into a variable (use imread). For your new question about how to access the image when you click a different push button, see the FAQ http://matlab.wikia.com/wiki/FAQ#How_can_I_share_data_between_callback_functions_in_my_GUI.28s.29.3F

Answer by Thirunavukkarasu

Thirunavukkarasu (view profile)

on 6 Feb 2015

What must be the size of the axes to load the .jpg image? how can we relate the size of the image with the size of the axes ?

1 Comment

Image Analyst

Image Analyst (view profile)

on 6 Feb 2015

They're independent. Your image will scale to fit whatever size your axes is.

Thirunavukkarasu

Thirunavukkarasu (view profile)

Contact us