捕捉图片的特定色彩
这里有一张图片,我想要捕捉图片中的蓝色
第一步 ,首先把图片变成HSV图片这样方便我们找到颜色,RGB通道并不能很好地反映出物体具体的颜色信息 , 而相对于RGB空间,HSV空间能够非常直观的表达色彩的明暗,色调,以及鲜艳程度,方便进行颜色之间的对比
色调(H),饱和度(S),明度(V)
img = cv2.imread("Resources/majiang.JPG")
#这张图片有点大,给他缩小一下
img = cv2.resize(img, (0, 0), None, 0.4, 0.4)
# 色调(H),饱和度(S),明度(V)。
imgHSV = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
cv2.imshow("img", img)
cv2.imshow("imgHSV", imgHSV)
cv2.waitKey(0)
第二步,创造一个追踪窗口,该窗口中添加HSV三个值的滑动条,我们通过滑动条调整来捕捉蓝色的范围大小
cv2.createTrackbar()
第一个参数:滑动条的名字
第二个参数:滑动条被放置的窗口名字
第三个参数:滑动条的默认位置
第四个参数:滑动条的最大值
第五个参数:回调函数,每次滑动条的滑动都会调用该函数,该函数通常会有一个参数,这个参数就是滑动条的位置。
def empty(a):
pass
cv2.namedWindow("TrackBars")
cv2.resizeWindow("TrackBars",640,240)
cv2.createTrackbar("Hue Min","TrackBars",0,179,empty)
cv2.createTrackbar("Hue Max","TrackBars"