Image rgb2gray中出错:贴图必须是m x 3数组

Image rgb2gray中出错:贴图必须是m x 3数组,image,matlab,Image,Matlab,我正在对与背景颜色相似的圆形物体进行图像分割。图像为RGB,但RGB值给出灰色色调,请注意,即使图像看起来是灰色的,也不是灰度。在分割过程中,我必须应用梯度过滤器和通过重建打开和关闭,以便在制作用于分割的二元遮罩之前将圆形对象与背景分离。我在这个过程中使用的一些函数只接受2D数组输入。事实上,图像本身的二值化只能在2D阵列输入中完成,而不能在作为3D阵列的RGB图像中完成。所以,我正在尝试转换我的RGB图像,它看起来是灰色的,但在做其他事情之前不是灰度的。但是,当我使用rgb2gray函数时,我

我正在对与背景颜色相似的圆形物体进行图像分割。图像为RGB,但RGB值给出灰色色调,请注意,即使图像看起来是灰色的,也不是灰度。在分割过程中,我必须应用梯度过滤器和通过重建打开和关闭,以便在制作用于分割的二元遮罩之前将圆形对象与背景分离。我在这个过程中使用的一些函数只接受2D数组输入。事实上,图像本身的二值化只能在2D阵列输入中完成,而不能在作为3D阵列的RGB图像中完成。所以,我正在尝试转换我的RGB图像,它看起来是灰色的,但在做其他事情之前不是灰度的。但是,当我使用rgb2gray函数时,我从MATLAB中得到以下错误: 使用rgb2gray>parse_输入时出错(第77行) 映射必须是一个m x 3数组

RGB2灰色错误(第52行) [X,threeD]=解析_输入(X)

Mask_生物物理学中的错误(第2行) 帧=rgb2gray(rgb)

有人知道这个错误意味着什么以及如何修复它吗? 这是代码中给出错误的部分:

rgb=imread('kids.tif'); 帧=rgb2gray(rgb)

请注意,我使用的是预装的matlab图像“kids.tif”,因此,错误与我的特定图像无关。kids.tif是matlab中的RGB彩色图像

tif文件(至少
'kids.tif'
)是带有彩色贴图的二维索引矩阵,而不是三维(RGB)矩阵
rgb2gray
接受3D RGB矩阵或2D索引矩阵及其匹配的颜色映射。尝试:

[rgb,cmap]= imread('kids.tif');
Frame= rgb2gray(rgb,cmap);

您不会显示如何调用
rgb2gray
或输入图像的类型/范围。显然,MATLAB认为您的图像是一幅彩色地图。Frame1=imread('kids.tif');帧=rgb2gray(帧1);我上面贴的是我的实际代码。你提到的是我从错误中解释的。因此,我对其中一个预装的matlab图像“kids.tif”尝试了相同的代码。请使用更新问题本身。我刚刚编辑了问题。感谢使用stackoverflow的提示。我希望您能帮助我修复错误