我有一张图片('strawberry.jpg') strawberry.jpg
image=imread('strawberry.jpg');
imshow(image);
显示如下。
我认为x和y轴以照片的像素显示。但是当我尝试使用
来获得大小时 [x,y]=size(image)
然后我得到x = 177和y = 852.但是这个值与imshow图像中显示的值并不接近。
所以,我做错了什么?或者[x,y] = size(图像)意味着不同的尺寸而不是imshow图像中显示的像素尺寸。
由于
答案 0 :(得分:0)
这是因为你有一个RGB图像(即第三维中有3个通道)。当您明确请求size
的两个输出时,它会返回第一个输出的行数和列数次第三个维度的大小(284 x 3)为{{3 }}。
如果您想要RGB图像的真实尺寸,则需要将三个输出指定为大小。
[nRows, nColumns, nChannels] = size(image);
或者,您可以从size
请求单个输出,它将生成一个大小数组,其中每个元素对应 维度中的大小。
sz = size(image);
%// 177 284 3
或者使用第二个输入参数来明确指定您关注的维度。
nRows = size(image, 1);
nColumns = size(image, 2);