OpenCV 将 HSL 转换为 RGB
OpenCV converts HSL to RGB
我正在使用 OpenCV python 将单个 HSL 值转换为 RGB 值。
由于没有HSL2RGB flag,所以我使用了HLS2RGB flag。我假设 HSL 和 HLS 指的是相同的颜色 space 但只是翻转了 S 和 L 值。是吗?
所以这是我的尝试:
import cv2
hls = (0, 50, 100) # This is color Red
rgb = cv2.cvtColor( np.uint8([[hls]] ), cv2.COLOR_HLS2RGB)[0][0]
转换后,rgb
值为[70,30,30]
但是,当我在在线 RGB 选择器上检查这个 RGB 值时,颜色是深棕色。
知道转换中哪里会出错吗?谢谢
OpenCV 中的 HLS 范围是
H -> 0 - 180
L -> 0 - 255
S -> 0 - 255
因此,如果您使用的 HLS 范围是
H -> 0 - 360
L -> 0 - 100
S -> 0 - 100
你必须先把它转换成OpenCV的范围
hls = (0, 50, 100)
hls_conv = (hls[0]/2, hls[1]*2.55, hls[2]*2.55)
rgb = cv2.cvtColor(np.uint8([[hls_conv]]), cv2.COLOR_HLS2RGB)[0][0]
这将导致 rgb 为 [254, 0, 0]
我正在使用 OpenCV python 将单个 HSL 值转换为 RGB 值。
由于没有HSL2RGB flag,所以我使用了HLS2RGB flag。我假设 HSL 和 HLS 指的是相同的颜色 space 但只是翻转了 S 和 L 值。是吗?
所以这是我的尝试:
import cv2
hls = (0, 50, 100) # This is color Red
rgb = cv2.cvtColor( np.uint8([[hls]] ), cv2.COLOR_HLS2RGB)[0][0]
转换后,rgb
值为[70,30,30]
但是,当我在在线 RGB 选择器上检查这个 RGB 值时,颜色是深棕色。
知道转换中哪里会出错吗?谢谢
OpenCV 中的 HLS 范围是
H -> 0 - 180
L -> 0 - 255
S -> 0 - 255
因此,如果您使用的 HLS 范围是
H -> 0 - 360
L -> 0 - 100
S -> 0 - 100
你必须先把它转换成OpenCV的范围
hls = (0, 50, 100)
hls_conv = (hls[0]/2, hls[1]*2.55, hls[2]*2.55)
rgb = cv2.cvtColor(np.uint8([[hls_conv]]), cv2.COLOR_HLS2RGB)[0][0]
这将导致 rgb 为 [254, 0, 0]