How to access zoomed image on axes GUI

조회 수: 13 (최근 30일)
Naman Bansal
Naman Bansal 2014년 7월 27일
댓글: Naman Bansal 2014년 7월 30일
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.

채택된 답변

Image Analyst
Image Analyst 2014년 7월 27일
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
Image Analyst
Image Analyst 2014년 7월 28일
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 2014년 7월 30일
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.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Migrate GUIDE Apps에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by