图像深度和通道之间的区别

23
我正在尝试学习OpenCV,但是感到很困惑。 有人能够知道图像深度和图像通道数之间的区别吗? 假设图像深度为8,颜色通道数为R、G、B各3个。那么这代表什么意思呢?我很难想象出它的三维结构。
5个回答

27

深度(或更好的色彩深度)是用于表示颜色值的位数。我不太了解OpenCV,但通常情况下,深度为8意味着每个通道有8位(因此每个通道有256种颜色值 - 或更好的:灰度级别(参见评论)- 每个像素值由3 * 8 = 24位组成。

然而,这也取决于术语。通常你会说

“每个通道的颜色深度为8位”

但你也可以说

“图像的颜色深度为32位”

然后表示RGBA每个通道为8位或

“图像的颜色深度为24位”

并且表示R、G和B通道的每个通道为8位。

底线:这里的文档(或措辞)必须相当具体;-)


准确地说,从0到255有256个颜色值(或更好的灰度阴影)。 - andrea.marangoni
哦,没错——我被措辞所困住了。我会修改的。 - cli_hlt

10

理解为这样。

您有一张仅有一个像素的图像。该图像的大小为1x1个像素。

  • 如果这是一张灰度图像,那么只需要一个通道来表示图像。为什么?因为灰度图像(假设为8位图像)将有8位,即2的8次方,即256种不同的阴影。从黑到白。灰度
  • 灰度通常是黑白图像。
  • 现在,如果同样的单像素图像由颜色组成,则我们需要三个通道,即红色、绿色和蓝色或RGB。当我们混合这些通道的阴影时,我们得到不同的颜色。
  • 例如,(255,255,255)在RGB中是纯白色,而(0,0,0)是纯黑色
  • 因此,现在每个通道都将具有0-255的阴影,即8位。
  • 生成的彩色图像的深度为8位,通道数为3。
  • 您可以拥有超过8位的每个通道,这会增加颜色范围(阴影)
  • 对于1x1像素图像,像素颜色值将在每个通道中范围从0到255。即[R中的0到255][G中的0到255][B中的0到255]

9
根据OpenCV文档,深度在OpenCV中定义为单个通道的位深度。因此,如果您具有8位深度和3个通道,则表示每个图像像素有24位。

1
我明白了,谢谢你的评论。 - leonidus

6

图像深度指每个通道可以具有的值的范围。如果您拥有8位(无符号字符)的通道深度,则一个通道可以具有0-255的值。RGB表示3个通道,一个用于红色值,一个用于绿色值,另一个用于蓝色值。


2

图像深度是指用于存储图像的实际数据类型的长度(例如:integer, char, float)。在您的情况下,它似乎是charunsigned char,因为深度为8位。

通道数是描述特定像素颜色的数字数量(例如:RGB-3个通道)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接