How to access zoomed image on axes GUI

12 views (last 30 days)
I was working on some application in matlab guide. I'm using toolbar in my GUI with inbuilt zoom in and zoom out features that it provides. So what I have done is that I have loaded an image on an axis. And now after zooming it, I want the access the zoomed image, not the entire image. I have tried getimage(), but what it does is that it gives me the entire image loaded on the axis. Someone please help me out.

Accepted Answer

Image Analyst
Image Analyst on 27 Jul 2014
In the other post I told you to use getframe() and gave you code. Here is the demo again.
close all;
im=imread('cameraman.tif');
subplot(1,2,1);
imshow(im);
subplot(1,2,2);
imshow(im);
size(im)
zoom(8);
zoomedImage = getframe(); % Get zoomed portion that is visible.
size(zoomedImage.cdata)
figure; % Bring up separate figure.
imshow(zoomedImage.cdata);
Do you see how in the second figure it is only the zoomed, visible portion of the image from figure 1 that was captured and is being displayed?
Your post is ambiguous. On the one hand you say you want to capture only the zoomed portion, yet on the other hand you say you want "the entire image loaded on the axis" which would include the entire image even the parts that were zoomed out of the display window and not visible. Of course you already have the entire image - you sent it into the axes with imshow(), though what's displayed may be different if you added text, lines, or other annotation. Please clarify exactly what you want because it's not clear to me.
  7 Comments
Image Analyst
Image Analyst on 28 Jul 2014
That's not how you do ROI processing. You don't just zoom and expect to process the visible area. You need to crop it out with imcrop, or use imrect() or rbbox() or some other way to indicate what the ROI is.
Naman Bansal
Naman Bansal on 30 Jul 2014
Hey I understood what you are saying. So now let me reformulate my problem. So I have two images loaded in two axis. Now what I want is to allow the user to zoom in both of them as he wants (I'll have to link those axis). Then he'll be selecting a ROI(rectangle) in one of them.(I want the same operation to be performed on the two ROI's selected from two images loaded in two axis). So what my problem is I have no idea now where to start, what functions to use. I tried the method that I was asking you earlier but that's of no use. So can you just help me get started. It will be a great help.

Sign in to comment.

More Answers (0)

Categories

Find more on Migrate GUIDE Apps 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!