使用imcrop将图像分成两半

时间:2016-03-22 08:55:26

标签: matlab

我想使用imcrop将图片分成两半。但是,结果并不完全是图片的一半。有什么问题?

代码在这里:

I=imread('example.png');
[x,y]=size(I); 
disp(x);
disp(y);
A = imcrop(I, [0 0 x y/2]);
[x1,y1]=size(A);
imshow(A);

任何图片都可以作为一个例子。

1 个答案:

答案 0 :(得分:0)

如果您只请求size的两个输出,那么它将返回真正的第一个维度作为第一个输出,并返回所有其他维度的乘积作为第二个输出。它并不关心数据的实际维度。

在您的情况下,您有一个RGB图像,因此建议将显式尺寸指定为size的第二个输入。这将确保您获得所需的维度。

nRows = size(I, 1);
nCols = size(I, 2);

A = imcrop(I, [0 0 nRows round(nCols/2)]);

一般情况下,我会定期使用size的尺寸输入来确保我得到我想要的尺寸。