图像深度和通道之间的差异

leo*_*dus 20 c++ opencv image image-processing

我正在尝试学习opencv,但它非常令人困惑.有人可以知道imagedepth和no之间的区别.图像中的通道.假设图像深度为8而不是.通道R,G,B为3.然后,它表示什么,我很难看到三维结构

cli*_*hlt 23

深度(或更好的颜色深度)是用于表示颜色值的位数.我不是真的进入OpenCV,但是颜色深度为8 通常意味着每通道8位(因此你有256个颜色值 - 或者更好:灰色阴影(见注释) - 每个通道 - 从0到255)和3个通道然后,一个像素值由3*8 = 24位组成.

但是,这也取决于命名法.通常你会说

"颜色深度为每通道8位"

但你也可以说

"图像的颜色深度为32位"

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

"图像的颜色深度为24位"

并且表示每个R,G和B通道的8位.

底线:文档(或措辞)在这里必须非常具体;-)


Cha*_*esB 8

根据OpenCV文档,OpenCV深度定义为单个通道的位深度.因此,如果您有8位深度和3个通道,则意味着每个图像像素有24位


小智 7

就这样吧.

您的图像中只有一个像素.图像的尺寸为1x1像素.

  • 如果这是灰度图像,则仅需要单个通道来表示图像.怎么样?因为灰色图像(假设8位图像)将具有8位,其中2位被提升到8次幂,所以是256个不同的SHADES.从黑色到白色.灰度
  • 灰度一般是黑白图像.
  • 现在,如果相同的单个像素图像由颜色组成,那么我们需要三个通道,即红色,绿色和蓝色或RGB.当我们混合这些通道的阴影时,我们会得到不同的颜色.
  • 例如,(255,255,255)是RGB中的纯白色,(0,0,0)是纯黑色
  • 所以现在每个通道都有0到255的阴影,即8位.
  • 得到的彩色图像的深度为8位,通道数为3.
  • 每个通道可以有超过8位,这会增加颜色范围(阴影)
  • 对于1x1像素图像,像素颜色值的范围为每通道0-255.那是[0 to 255 in R][0 to 255 in G][0 to 255 in B]


inf*_*inf 5

图像深度表示每个通道可以具有的值范围.如果您的通道深度为8位(无符号字符),则一个通道的值可以为0 - 255.RGB表示3个通道,一个用于R ed值,一个用于G reen值,一个用于B lue值.


Ale*_*lex 2

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

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