【问题标题】:Matlab imresize function rounding up pixelsMatlab imresize函数四舍五入像素
【发布时间】:2014-04-22 14:29:32
【问题描述】:

我希望拍摄 162x193 像素的图像,然后将其缩小 0.125,即 162/8 = 20.25 和 193/8 = 24.125。因此,我想要一张大小为 20x24 的图片我目前遇到的唯一问题是,当我使用 imresize 函数时,它会四舍五入图像像素值,即我得到一个大小为 21x25 而不是 20x24 的图像。获得 20x24 的任何方式还是我将不得不忍受这个问题?这是一些代码:

    //Read in original Image
    imageBig = imread(strcat('train/',files(i).name));  
    //Resize the image
    image = imresize(imageBig,0.125);
    disp(size(image));

【问题讨论】:

    标签: matlab image-processing


    【解决方案1】:

    似乎在提供scale 参数的情况下,imresize ceils 会增加您的结果显示的尺寸。所以,我想一个明显的选择是手动为其提供 rounded 值作为维度。

    代码

    %%// Scaling ratio
    scale1 = 0.125;
    
    %%// Get scaled up/down version
    [M,N,~] = size(imageBig);
    image = imresize(imageBig,[round(scale1*M) round(scale1*N)]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-12
      • 2023-01-12
      • 1970-01-01
      • 2012-08-04
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多