Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.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
Matlab 使用imcrop将图像分割为两半_Matlab - Fatal编程技术网

Matlab 使用imcrop将图像分割为两半

Matlab 使用imcrop将图像分割为两半,matlab,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); 任何图片都可以用作示例。如果您仅从size请求两个输出,则它将返回真实的第一个维度作为第一个输出,并返回所有其他维度的乘积作为第二个输出。它不关心数据的实际维度是什么 在您的情况下,您有

我想使用
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);

任何图片都可以用作示例。

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

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

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

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

一般来说,我会定期使用尺寸输入来调整尺寸,以确保得到所需的尺寸。

我假设这种情况只发生在奇数宽度的图像上,对吗?你不能把一个像素分成两半。谢谢!我了解到这是因为在“[x,y]=size(I)”中,size()的返回值有3维,但我使用2维[x,y]来接收,因此值y是错误的。