在 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_BGR2HSV
或 COLOR_BGR2HLS
将该值除以 2 以使其适合,但这意味着您只能在 uint8
图像中指定 180 种不同的色调。但是您可以适应 255 个不同的值,因此存在选项 COLOR_BGR2HSV_FULL
和 COLOR_BGR2HLS_FULL
(以及相反的选项)来指定为色相 channel 使用完整的 255 个范围;因此 0 映射到 0,255 映射到 360 度,并且在两者之间线性间隔。
所有可用的颜色代码都可以在 ColorConversionCodes 下看到在文档中。
关于python - opencv python 中每个 channel 的 HSV 、 YCrCb 和 LAB 颜色空间的像素值范围是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53405148/