def single_finger_check(self, cnt):
# use single finger image to check current fame has single finger
grey_fin1 = cv2.cvtColor(self.fin1, cv2.COLOR_BGR2GRAY)
_, thresh_fin1 = cv2.threshold(grey_fin1, 127, 255, 0)
contour_fin1, hierarchy = cv2.findContours(thresh_fin1.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)
cnt1 = contour_fin1[0]
ret1 = cv2.matchShapes(cnt, cnt1, 1, 0)
grey_fin2 = cv2.cvtColor(self.fin2, cv2.COLOR_BGR2GRAY)
_, thresh_fin2 = cv2.threshold(grey_fin2, 127, 255, 0)
contour_fin2, hierarchy = cv2.findContours(thresh_fin2.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)
cnt2 = contour_fin2[0]
ret2 = cv2.matchShapes(cnt, cnt2, 1, 0)
grey_fin3 = cv2.cvtColor(self.fin3, cv2.COLOR_BGR2GRAY)
_, thresh_fin3 = cv2.threshold(grey_fin3, 127, 255, 0)
contour_fin3, hierarchy = cv2.findContours(thresh_fin3.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)
cnt3 = contour_fin3[0]
ret3 = cv2.matchShapes(cnt, cnt3, 1, 0)
reta = (ret1 + ret2 + ret3)/3
if reta <= 0.3:
return 5 # set as one-finger module
else:
return 0 # not detect, still 0
# Use PyAutoGUI to control mouse event
评论列表
文章目录