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

How to display a jpg or bmp figure on GUI pane with high quality?

Asked by Yao Li on 10 May 2013

The jpg or bmp figure displays well if I open it outside matlab. But if I implement imread()and image() to display the image in axes on GUI pane, the quality of the image is unsatisfactory. Can anyone help?

2 Comments

Jing on 10 May 2013

What's the exact code you used?

Yao Li on 13 May 2013
filename='aaa.bmp';
h=imread(filename);
image(h);
Yao Li

Products

No products are associated with this question.

2 Answers

Answer by Walter Roberson on 14 May 2013
Accepted answer

First you need to calculate the width and height of your image in pixels. Then you need to create an axis whose dimensions in pixels exceed that width and height; you can do that by specifying the name/value pair 'Units', 'pixels', and giving the appropriate Position property

Then

image(h)
axis image

You might need to play with the axis InnerPosition or Position properties in order to ensure that the portion of the image actually used to draw on is as big as you need.

If your image size exceeds the amount of screen space you can afford, you will not be able to fit the entire image in without decline in quality unless you only show a portion of the image at a time and then either have the user use the "pan" tool or else provide scroll bars such as by using http://www.mathworks.com/matlabcentral/fileexchange/14984-scrollplot-scrollable-xy-axes

0 Comments

Walter Roberson
Answer by Lisa Wu on 13 May 2013

Try imshow(I),displaying the grayscale image I

1 Comment

Yao Li on 13 May 2013

thx, but sorry, I don't have this toolbox and can't call the function imshow(). Any other suggestions?

Lisa Wu

Contact us