在摄像头中使用不同颜色的笔进行隔空画图
第一步,添加摄像头
import cv2
import numpy as np
cap = cv2.VideoCapture(0)
# get是获取视频属性,set是重新设置视频属性,3,4为长宽,10为亮度
cap.set(3, 640)
cap.set(4, 480)
cap.set(10,150)
while True:
success, img = cap.read()
cv2.imshow("helo",img)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
第二步,捕捉我们使用画图笔的颜色
我们用什么颜色画图?捕捉颜色步骤详细解释
上一篇博客详细解释了如何捕捉图片某种特点颜色的色彩,如图捕捉蓝色
在这里我将使用,红色和金色进行画图
金色的数值
红色同理,为64 178 154 255 0 209
颜色捕捉代码
import cv2
import numpy as np
# 第一个参数:滑动条的名字
# 第二个参数:滑动条被放置的窗口名字
# 第三个参数:滑动条的默认位置
# 第四个参数:滑动条的最大值
# 第五个参数:回调函数,每次滑动条的滑动都会调用该函数,该函数通常会有一个参数,这个参数就是滑动条的位置。
cap = cv2.VideoCapture(0)
# get是获取视频属性,set是重新设置视频属性
cap.set(3, 640)
cap.set(4, 480)
# while True:
# success, img = cap.read()
# cv2.imshow("helo",img)
# # if cv2.waitKey(1) & 0xFF == ord('q'):
# # break
# if cv2.waitKey(1):
# break
def empty(a):
pass
cv2.namedWindow("TrackBars")
cv2.resizeWindow("TrackBars",640,240)
cv2.createTrackbar("Hue Min","TrackBars",96,179,empty)
cv2.createTrackbar("Hue Max","TrackBars",110,179,empty)
cv2.createTrackbar("Sat Min","TrackBars",94,255,empty)
cv2.createTrackbar("Sat Max","TrackBars",241,255,empty)
cv2.createTrackbar("Val Min","TrackBars",23,255,empty)
cv2.createTrackbar("Val Max","TrackBars",255,255,empty)
while True:
# img = cv2.imread("Resources/majiang.JPG")
success, img = cap.read()
img = cv2.resize(img, (0, 0), None, 0.4, 0.4)
# 色调(H),饱和度(S),明度(V)。
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(