Saving image changes size.
    5 views (last 30 days)
  
       Show older comments
    
saveas saves the wrong dimensions, truesize doesn't adjust the image to its true size? In c++ the image just diplays the whole size, but I can't do something similar here.
imwrite does not save the image with the drawn rectangles, but saves the correct dimensions.
How do I fix my code to save the correct dimensions and also the drawn rectangles?
tar_loc = '...\images\';
im = imread([tar_loc '001.jpg']);
fig = figure(420);
imshow(im);
axis on;
window_pos = [ 1131         367         575         534];
template_pos = [1279         508         258         273];
hold on;
r1_window = images.roi.Rectangle(fig.CurrentAxes,'Position', window_pos, 'Label','Window','FaceAlpha', 0, 'Color',[1 0 0]);
r2_template = images.roi.Rectangle(fig.CurrentAxes,'Position',template_pos, 'Label','Template','FaceAlpha', 0, 'Color' , 'y');
I = getimage(fig);
imwrite(I, [filepath 'target.png']) %Saves correct size
truesize(fig)
saveas(fig.CurrentAxes, [filepath 'target_roi.png']);  %Saves wrong size
imdon2 = imread([filepath 'target.png']);
size(imdon2)
0 Comments
Answers (1)
  awezmm
      
 on 23 Oct 2019
        Try using the export_fig package: https://www.mathworks.com/matlabcentral/fileexchange/23629-export_fig
You have lots options with this package on how to save a figure, like choosing to save at native resolution.
0 Comments
See Also
Categories
				Find more on Read, Write, and Modify Image 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!
