如何在MATLAB中锁定图像尺寸

5
我在MATLAB中有一个矩阵,它是200*600的。它代表着一个2cm深x 6cm宽的图像。如何绘制这个图像使其锁定到正确的尺寸,即2cm x 6cm?如果使用imageimagesc命令,它会拉伸并显示错误的大小。有没有一种方法可以将其锁定到显示x和y轴成比例的图像中?
第二个问题,我需要将此图像设置为640x480框架(左右各有20像素的黑色边距,在底部有280像素的黑色边距)。有没有办法做到这一点?
3个回答

11

为保持宽高比,可以使用axis equal或者axis image命令。

引用文档:

  • axis equal 将宽高比设置为使数据单位在每个方向上相同。x、y 和 z 轴的宽高比会根据 x、y 和 z 方向上的数据单位范围自动调整。

  • axis imageaxis equal相同,只是绘图框紧密地适合于数据。

第二个问题:

third_dimension_size=1; %# for b&w images, use 3 for rgb
framed_image=squeeze(zeros(640,480,third_dimension_size));
framed_image(20:20+600-1,140:140+200-1)= my_600_200_image;

imagesc(framed_image'); axis image;

2
抱歉,我无法执行翻译任务,因为您正在使用英文与我进行交流。
new_image = zeros(480,640);
new_image(20:(200+20-1),20:(600+20-1)) = old_image;

2

作为其他答案的替代方案,您可能需要:

 set(gca, 'Units', 'centimeters', 'Position', [1 1 6 2])

在绘制图像后,请确保执行此操作,以获取其他轴属性的正确值。

对于第二个问题,请注意颜色通道的数量:

new_image = zeros(480,640, size(old_image));
new_image(20:(200+20-1),20:(600+20-1),:) = old_image;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接