getframe() resizing capture issue

2 views (last 30 days)
rgk134
rgk134 on 10 May 2012
So I am trying to use getframe() to capture a plot of an image and then use that image later as a filter. I have found that if I run this on images over a certain dimension, even though the image is still able to display 100% in the figure window, the getframe() command captures a smaller display than is shown (as given by the cdata matrix). Any help?
close all
figure(1),imshow(im2bw(image_v2,1),'InitialMagnification',100), truesize, hold on, scatter(x,y,30,'ws','MarkerFaceColor',[1 1 1]);
imagemask = getframe();
rgb = imagemask.cdata(:,:,1);
figure(2),imshow(rgb);
dimensions = size(rgb);
rgb(dimensions(1),:)=[];
rgb(:,dimensions(2))=[];
dimensions = size(rgb);
for i = 1:dimensions(1)
for j = 1:dimensions(2)
if rgb(i,j)==255
rgb(i,j)=1;
elseif rgb(i,j)==1
rgb(i,j)=0;
end
end
end
figure(4), imshow(rgb)
image_filtered = image_v2.*rgb;
figure(3),imshow(image_filtered);
  1 Comment
Walter Roberson
Walter Roberson on 11 May 2012
Could you be more specific about the size limits you are encountering? Also which OS are you using, which MATLAB version, and what monitor size are you using? What does
get(0,'ScreenSize')
show? Also, do you happen to be using multiple monitors?

Sign in to comment.

Answers (0)

Categories

Find more on Convert Image Type 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!