Matlab大小的图像

时间:2012-03-04 12:55:02

标签: matlab

我试图找到我加载到matlab中的图像的大小。

image=imread('text.jpg');
[x,y]=size(image);

这会返回错误:

  

索引不能产生多个结果。

imread是不是将图像读入2d数组,因此应该有两种尺寸?

6 个答案:

答案 0 :(得分:16)

对于那些希望在matlab中找到图像大小的人,请不要使用:

[height, width] = size(image);

这是因为imread分别存储RGB值(对于彩色图像),从而产生三维矩阵。

例如,如果您加载了500p高,200p宽的彩色图像,这将产生500x200x3矩阵。

以这种方式调用size()会导致维度被卷起,并且报告高度为500,但宽度为600(200 * 3)。

使用:

[height, width, dim] = size(image);

将返回正确的值500,200,3。

答案 1 :(得分:12)

您可能在此代码之前定义了名为size的变量吗?

答案 2 :(得分:3)

您必须使用[height, width, colour_planes] = size(image);,因为图片有3个尺寸。第三个维度是颜色平面的数量。如果您不需要此值,则可以替换~来忽略它。

答案 3 :(得分:1)

只需使用此whos并按Enter即可。

image=imread('text.jpg');
whos

答案 4 :(得分:1)

[X,Y,Z] =尺寸(图像); 是正确的。 x和y将给出图像的长度和宽度,z指定颜色。

数字图像由RGB组成,因此z将为3。

答案 5 :(得分:-3)

你可以试试这个:

image=imread('text.jpg');
[x y]=size(image);