你如何在OpenCV上轻松打击HSL?

时间:2018-01-10 08:03:49

标签: python opencv image-processing colors hsl

有一个项目即时工作,需要进行颜色白色检测,经过一些研究,我决定使用隐蔽的RGB图像到HSL图像并打扫亮度使颜色变白,我正在使用openCV,所以想知道是否有是一种方法。 enter image description here

1 个答案:

答案 0 :(得分:2)

您可以通过4个简单步骤完成:

转换HLS

img = cv2.imread("HLS.png")
imgHLS = cv2.cvtColor(img, cv2.COLOR_BGR2HLS)

获取L频道

Lchannel = imgHLS[:,:,1]

创建面具

#change 250 to lower numbers to include more values as "white"
mask = cv2.inRange(Lchannel, 250, 255)

将蒙版应用于原始图像

res = cv2.bitwise_and(img,img, mask= mask)

这也取决于什么是白色,你可能会更改值:)我在L通道中使用了inRange但你可以保存一步并做

mask = cv2.inRange(imgHLS, np.array([0,250,0]), np.array([255,255,255]))

而不是行:

Lchannel = imgHLS[:,:,1]
mask = cv2.inRange(Lchannel, 250, 255)

它更短,但我先做了另一种方式,让它更明确,并展示我在做什么。

图像:

enter image description here

结果:

enter image description here

结果看起来几乎像面具(几乎是二进制),但根据你的下限(我选择了250),你可能会得到一些几乎是白色的颜色。