python - opencv python 中每个 channel 的 HSV 、 YCrCb 和 LAB 颜色空间的像素值范围是多少

标签 python opencv colors rgb color-space

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

谢谢

最佳答案

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

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

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

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

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

关于python - opencv python 中每个 channel 的 HSV 、 YCrCb 和 LAB 颜色空间的像素值范围是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53405148/

相关文章:

python - 多个 -m 命令行参数 (Python)

python - savefig 循环将以前的图添加到图中

c++ - OpenFrameworks,带有 OpenCV,VS2013 设置

python - 如何在 python 中将 OpenCV 图像传递给 Tesseract?

c# - 从 WPF ColorPicker 到矩形画笔的颜色?

javascript - 如何 "sort"特定色调的颜色

python - 以特定间隔循环遍历多个列表

python - 使用 python/opencv pandas 在集合中查找规范图像

opencv - OPENCV无法同时读取2个视频帧

javascript - 单击使用 Javascript 后如何使形状改变颜色?