首页 > 解决方案 > opencv python中每个通道的HSV,YCrCb和LAB颜色空间中的像素值范围是多少

问题描述

opencv python中HSV,YCrCb和LAB颜色空间的值范围是多少。例如在 RGB 中,R -> 0-255、G -> 0-255 和 B -> 0-255。上述色彩空间的有效范围是多少。

谢谢

标签: pythonopencvcolorsrgbcolor-space

解决方案


OpenCV 文档完全涵盖了这一点。不过,为了回顾您的具体问题,对于 8 位图像,使用以下转换代码从 BGR 图像转换将为您提供每个通道的以下最大值:

  • COLOR_BGR2HSV --> [180, 255, 255]
  • COLOR_BGR2Lab --> [255, 255 255]
  • COLOR_BGR2YCrCb --> [255, 255 255]

对于未映射到完整 255 值的各种颜色转换,还有一个附加选项,通常通过附加_FULL到转换代码,以便它们使用完整范围。

例如,HLS 和 HSV 颜色空间通常会给出 H(色调)通道值,[0, 360)以在色轮上映射 360 度颜色。但是,您无法将这些值放入一个uint8类型中,因此 OpenCV 将这个值除以 2 以COLOR_BGR2HSV使其COLOR_BGR2HLS适合,但这意味着您只能在uint8图像中指定 180 种单独的色调。但是您可以拟合 255 个不同的值,因此,存在选项COLOR_BGR2HSV_FULLCOLOR_BGR2HLS_FULL(以及相反的值)来指定将完整的 255 范围用于色调通道;所以 0 映射到 0,255 映射到 360 度,并且在两者之间呈线性间隔。

所有可用的颜色代码都可以在文档中的ColorConversionCodes下看到。


推荐阅读