我试图找到我加载到matlab中的图像的大小。
image=imread('text.jpg');
[x,y]=size(image);
这会返回错误:
索引不能产生多个结果。
imread是不是将图像读入2d数组,因此应该有两种尺寸?
答案 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);