Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 如何在MATLAB中锁定图像尺寸_Image_Matlab_Size - Fatal编程技术网

Image 如何在MATLAB中锁定图像尺寸

Image 如何在MATLAB中锁定图像尺寸,image,matlab,size,Image,Matlab,Size,我在MATLAB中有这个矩阵,200深x600宽。它代表一个2厘米深x 6厘米宽的图像。如何打印此图像,使其锁定在适当的尺寸,即2cm x 6cm?如果我使用image或imagesc命令,它会将其全部拉伸变形,并显示错误的大小。有没有办法将其锁定为显示x轴和y轴成比例的图像 第二个问题,我需要将这幅图像设置为640x480帧(左右各20像素的黑色边距,底部280像素的黑色边距)。有办法做到这一点吗?set(gca,'DataAspectRatio',[1]) 第二个问题: new_image

我在MATLAB中有这个矩阵,200深x600宽。它代表一个2厘米深x 6厘米宽的图像。如何打印此图像,使其锁定在适当的尺寸,即2cm x 6cm?如果我使用image或imagesc命令,它会将其全部拉伸变形,并显示错误的大小。有没有办法将其锁定为显示x轴和y轴成比例的图像

第二个问题,我需要将这幅图像设置为640x480帧(左右各20像素的黑色边距,底部280像素的黑色边距)。有办法做到这一点吗?

set(gca,'DataAspectRatio',[1])

第二个问题:

new_image = zeros(480,640);
new_image(20:(200+20-1),20:(600+20-1)) = old_image;
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;

要保持纵横比,可以使用
轴相等
轴图像
命令

引用文件:

  • axis equal
    设置纵横比,以便数据单位在每个方向上都相同。x、y和z轴的纵横比根据x、y和z方向上的数据单位范围自动调整

  • axis image
    与axis equal相同,只是打印框紧紧围绕数据`

关于第二个问题:

new_image = zeros(480,640);
new_image(20:(200+20-1),20:(600+20-1)) = old_image;
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;

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

 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;