Hi,
please want to zoom my image; How can i do please?
I done this code:
load navatalungo_H.asc
NP1 = 1151;
xx=linspace(0,0.02*(NP1-1),NP1);
imagesc(xx,t,navatalungo_H')

 Accepted Answer

Walter Roberson
Walter Roberson on 3 Nov 2017

0 votes

You can generally turn zoom on or off or set a zoom factor using zoom()
However, if you want to zoom to a particular section then the easiest way is to set the axes xlim and ylim . When you do this you should take into account that the xx and t coordinates are the coordinates of the centers of pixels, so you would want to nudge the limits a little to the left or right to include whole pixels.
Note: when you pass x and y values to image() or imagesc() or imshow(), then only the first and last values are paid attention to. If you need a non-linear presentation of an image you need to handle it a different way, such as using pcolor(), or texture mapping your image onto a surface or patch.

11 Comments

my image look like this, I just want to zoom the header.
After displaying the image, experiment with
YL = get(gca, 'ylim')
Ylim_at_top = [YL(2) - (YL(2)-YL(1))/6, YL(2)]
set(gca, 'YLim', Ylim_at_top)
pause
Ylim_at_bottom = [YL(1), YL(1) + (YL(2)-YL(1))/6];
set(gca, 'YLim', Ylim_at_bottom)
pause
and see if one of the two does what you want
Many Thank, it is exactly what i need.
Which one turned out to be the one you wanted?
The second. Ylim_at_bottom = [YL(1), YL(1) + (YL(2)-YL(1))/6]; set(gca, 'YLim', Ylim_at_bottom)
But i want to have the '/6' value dynamicly... Why have you divide by 6 please? not another number may be...
Walter Roberson
Walter Roberson on 3 Nov 2017
Edited: Walter Roberson on 4 Nov 2017
I did a visual examination and saw that the interesting information appeared to be between 0 and 0.2. When I looked at the tick marks and the width of the borders, it appears to me that the tick marks are about 1/12 of the height of the image (including borders). One tick plus keeping the border is about 1/12+1/12 = 1/6 of the height.
For anything dynamic you would need to have some way of calculating what part of the image was "interesting" to zoom into.
denis bertin
denis bertin on 4 Nov 2017
Edited: denis bertin on 4 Nov 2017
Thank you... Is it possible having 'grey' background color please?
I am not sure what you are asking about grey background. You can
set(gca, 'Color', [.1 .1 .1])
to get 1/10th intensity as the background. This will be visible only in the parts of the axes where nothing is drawn, but if you are zooming in using ylim then everything is going to be drawn on (unless you set the data aspect ratio somehow, such as "axis equal")
denis bertin
denis bertin on 4 Nov 2017
Edited: denis bertin on 4 Nov 2017
Hi, If you look the picture, background color was blu, i want it grey color.
After display image, i put this:
YL = get(gca, 'ylim') Ylim_at_bottom = [YL(1), YL(1) + (YL(2)-YL(1))/2.5];
set(gca, 'YLim', Ylim_at_bottom) set(gca, 'Color', [.1 .1 .1])
but i always have blu background color(see attach).
If you look at Cattur1.PNG that you posted first, the background color is white and the content of the image happens to be mostly blue. I think the blue is your image, not background.
Yes! it's true. Sorry, i would want grey image.
Thank you...

Sign in to comment.

More Answers (1)

Image Analyst
Image Analyst on 4 Nov 2017

2 votes

See attached zoom demo, given to me by the Mathworks.

3 Comments

Thank you Image Analyst, this is brilliant!
Bang bang
Bang bang on 11 Feb 2020
How can I contact you Image Analyst I have a lot of question for you
You can create Questions in MATLAB Answers.
Image Analyst does not accept private correspondence.

Sign in to comment.

Categories

Find more on Graphics Performance in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!