OpenCV将HSL转换为RGB

qij5mzcb  于 2023-11-22  发布在  其他
关注(0)|答案(1)|浏览(128)

我使用OpenCV python将单个HSL值转换为RGB值。
因为没有HSL2RGB标志,所以我使用了HLS2RGB标志。我假设HSL和HLS指的是同一个颜色空间,只是将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值时,颜色是深棕色。
任何想法在转换中可能出错?谢谢

daolsyd0

daolsyd01#

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]

相关问题