Matlab imresize功能舍入像素

时间:2014-03-17 11:45:33

标签: matlab image-processing

我希望拍摄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));

1 个答案:

答案 0 :(得分:3)

似乎提供了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)]);