我正在对灰度图像执行操作,这些操作的结果图像与输入图像具有相同的扩展。例如输入图像为.jpg
或.png
,则输出图像分别为.jpg
或.png
。
,我将图像转换为灰度,如下所示:
ImgProc.cvtColor(mat, grayscale, ImgProc.COLOR_BGR2GRAY),
和我正在检查通道计数使用:
.channels()
问题是当我想知道图像包含多少通道时,尽管它是灰度图像,但我总是接收通道数= 3!!
请告诉我为什么会这样
深度(或者更好的颜色深度)是用来表示颜色值的位数。颜色深度为8通常意味着每个通道8位(所以你有256个颜色值-或更好:灰色阴影-每个通道-从0到255),3通道意味着一个像素值由3*8=24位组成。
然而,这也取决于命名法。通常你会说
"Color depth is 8bit per channel"
也可以写成
"图像的颜色深度为32位"
表示每个RGBA通道8位或
"图片颜色深度为24位"
和平均每R,G和B通道8位
灰度图像有三个通道,因为技术上它是不是灰度图像。它是一个彩色图像,对于每个像素的所有三个通道(r, g, b)具有相同的值。因此,视觉上它看起来像一个灰度图像。
检查图像中的通道,使用-
img.getbands ()