Saving image changes size.

조회 수: 3 (최근 30일)
Calvin Chang
Calvin Chang 2019년 10월 21일
답변: awezmm 2019년 10월 23일
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)

답변 (1개)

awezmm
awezmm 2019년 10월 23일
You have lots options with this package on how to save a figure, like choosing to save at native resolution.

카테고리

Help CenterFile Exchange에서 Read, Write, and Modify Image에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by