【问题标题】:How to lock image dimensions in MATLAB如何在 MATLAB 中锁定图像尺寸
【发布时间】:2011-10-11 17:36:08
【问题描述】:

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

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

【问题讨论】:

    标签: image matlab size


    【解决方案1】:

    要保持纵横比,您可以使用axis equalaxis image 命令。

    引用文档:

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

    • axis image 与axis 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】:

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

      第二个问题:

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

      【讨论】:

        【解决方案3】:

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

         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;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-08-08
          • 1970-01-01
          相关资源
          最近更新 更多