赞
踩
重要的函数:
HSV颜色图像
这个模型中颜色的参数分别是:色调(H),饱和度(S),明度(V)
色调H:
用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色为180°,紫色为300°
饱和度S:
饱和度S表示颜色接近光谱色的程度。一种颜色,可以看成是某种光谱色与白色混合的结果。其中光谱色所占的比例愈大,颜色接近光谱色的程度就愈高,颜色的饱和度也就愈高。饱和度高,颜色则深而艳。光谱色的白光成分为0,饱和度达到最高。通常取值范围为0%~100%,值越大,颜色越饱和。
明度V:
明度表示颜色明亮的程度,对于光源色,明度值与发光体的光亮度有关;对于物体色,此值和物体的透射比或反射比有关。通常取值范围为0%(黑)到100%(白)。
RGB和CMY颜色模型都是面向硬件的,而HSV(Hue Saturation Value)颜色模型是面向用户的。
HSV模型的三维表示从RGB立方体演化而来。设想从RGB沿立方体对角线的白色顶点向黑色顶点观察,就可以看到立方体的六边形外形。六边形边界表示色彩,水平轴表示纯度,明度沿垂直轴测量。
cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
创造一个滑动条
cv2.createTrackbar(“scale”, “display”, 0, 100, self.opencv_calibration_node.on_scale)
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",179,179,empty)
cv2.createTrackbar("Sat Min","TrackBars",0,255,empty)
cv2.createTrackbar("Sat Max","TrackBars",255,255,empty)
cv2.createTrackbar("Val Min","TrackBars",0,255,empty)
cv2.createTrackbar("Val Max","TrackBars",255,255,empty)
绑定参数
cv2.getTrackbarPos()
while True:
h_min=cv2.getTrackbarPos("Hue Min","TrackBars")
h_max=cv2.getTrackbarPos("Hue Max","TrackBars")
s_min=cv2.getTrackbarPos("Sat Min","TrackBars")
s_max=cv2.getTrackbarPos("Sat Max","TrackBars")
v_min=cv2.getTrackbarPos("Val Min","TrackBars")
v_max=cv2.getTrackbarPos("Val Max","TrackBars")
print(h_min,h_max,s_min,s_max,v_min,v_max) #实时打印参数
拖动滑条来改变HSV图像
bitwise_and(src1, src2, dst=None, mask=None)
lower = np.array([h_min,s_min,v_min])
upper = np.array([h_max,s_max,v_max])
mask = cv2.inRange(imgHSV,lower,upper)
imgResult = cv2.bitwise_and(img,img,mask=mask) #对图像(灰度图像或彩色图像均可)每个像素值进行二进制“与”操作
模块:
import cv2 import numpy as np def empty(a): pass path = 'xxx' cv2.namedWindow("TrackBars") cv2.resizeWindow("TrackBars",640,240) cv2.createTrackbar("Hue Min","TrackBars",0,179,empty) cv2.createTrackbar("Hue Max","TrackBars",179,179,empty) cv2.createTrackbar("Sat Min","TrackBars",0,255,empty) cv2.createTrackbar("Sat Max","TrackBars",255,255,empty) cv2.createTrackbar("Val Min","TrackBars",0,255,empty) cv2.createTrackbar("Val Max","TrackBars",255,255,empty) while True: img = cv2.imread(path) imgHSV = cv2.cvtColor(img,cv2.COLOR_BGR2HSV) h_min=cv2.getTrackbarPos("Hue Min","TrackBars") h_max=cv2.getTrackbarPos("Hue Max","TrackBars") s_min=cv2.getTrackbarPos("Sat Min","TrackBars") s_max=cv2.getTrackbarPos("Sat Max","TrackBars") v_min=cv2.getTrackbarPos("Val Min","TrackBars") v_max=cv2.getTrackbarPos("Val Max","TrackBars") print(h_min,h_max,s_min,s_max,v_min,v_max) lower = np.array([h_min,s_min,v_min]) upper = np.array([h_max,s_max,v_max]) mask = cv2.inRange(imgHSV,lower,upper) imgResult = cv2.bitwise_and(img,img,mask=mask) cv2.imshow("Original",img) cv2.imshow("HSV",imgHSV) cv2.imshow("Mask",mask) cv2.imshow("Result",imgResult) cv2.waitKey(1)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。