简体   繁体   中英

What is the range of pixel values in HSV , YCrCb, and LAB color spaces for each channel in opencv python

What is the range of values in HSV, YCrCb and LAB color spaces in opencv python. For example in RGB, R -> 0-255, G -> 0-255 and B -> 0-255. What is the valid range for the mentioned color spaces.

Thanks

The OpenCV documentation covers this completely. Just to recap for your specific questions though, for an 8-bit image, converting from a BGR image with the following conversion codes will give you the following maximum values for each channel:

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

There's an additional option for the various color transformations that do not get mapped to the full 255 values, generally by appending _FULL to the conversion code, so that they use the full range.

For eg, HLS and HSV colorspaces normally give the H (hue) channel values in [0, 360) to map 360 degrees of color on a color wheel. However, you cannot fit those values in a uint8 type, so instead OpenCV divides this value by 2 with COLOR_BGR2HSV or COLOR_BGR2HLS so that it fits, but this means you can only specify 180 separate hues in a uint8 image. But you could fit 255 distinct values, so instead, there exists the options COLOR_BGR2HSV_FULL and COLOR_BGR2HLS_FULL (and the inverses) to specify to use the full 255 range for the hue channel; so that 0 maps to 0, 255 maps to 360 degrees, and linearly spaced in between.

All of the available color codes can be seen under the ColorConversionCodes in the docs.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM