如何在使用opencv+python的手势识别直播视频流上显示文字
How to display text on live video stream of hand gesture recognition using opencv+python
我正在使用 raspberry pi3,我已经使用 OpenCV 和 python 编写了手部识别代码。但是现在我想在它的实时视频流屏幕上打印像 "left to right" 这样的文本,当手从左向右移动时,打印像 "right to left" 这样的文本,当手从右向左移动时。
现在我的问题是使用 cv2.putText()
我们可以显示文本,但我如何找到手从左向右移动或反之亦然的方向?
有人知道如何显示这段文字吗?请回复。提前致谢。
如果我没理解错的话,您已经认出了手(感兴趣区域又名 ROI)并且只是想知道如何知道它是向左还是向右移动。为了识别这一点,您应该保留其位置的一些历史记录。只需记住手所在的几帧。
import numpy as np
from collections import deque
cx_hist = deque(maxlen=10) # how many frames history
while True:
...
M = cv2.moments(contour) # the moment of one contour
cx = int(M['m10']/M['m00']) # the x coordinate of the centroid
cx_hist.append(cx)
diff = [cx_hist[i+1]-cx_hist[i] for i in range(len(cx_hist)-1)]
treshold = 2 # some treshold of significant (pixel) movement
if np.mean(diff) > treshold:
print('positive means movement to the right')
elif np.mean(diff) < treshold*-1:
print('negative means movement to the left')
else:
print('below the tresholds there is little movement')
您必须自己将其转换为puttext。我使用了质心坐标,但您可以选择其他坐标。参见 http://docs.opencv.org/3.1.0/dd/d49/tutorial_py_contour_features.html
我正在使用 raspberry pi3,我已经使用 OpenCV 和 python 编写了手部识别代码。但是现在我想在它的实时视频流屏幕上打印像 "left to right" 这样的文本,当手从左向右移动时,打印像 "right to left" 这样的文本,当手从右向左移动时。
现在我的问题是使用 cv2.putText()
我们可以显示文本,但我如何找到手从左向右移动或反之亦然的方向?
有人知道如何显示这段文字吗?请回复。提前致谢。
如果我没理解错的话,您已经认出了手(感兴趣区域又名 ROI)并且只是想知道如何知道它是向左还是向右移动。为了识别这一点,您应该保留其位置的一些历史记录。只需记住手所在的几帧。
import numpy as np
from collections import deque
cx_hist = deque(maxlen=10) # how many frames history
while True:
...
M = cv2.moments(contour) # the moment of one contour
cx = int(M['m10']/M['m00']) # the x coordinate of the centroid
cx_hist.append(cx)
diff = [cx_hist[i+1]-cx_hist[i] for i in range(len(cx_hist)-1)]
treshold = 2 # some treshold of significant (pixel) movement
if np.mean(diff) > treshold:
print('positive means movement to the right')
elif np.mean(diff) < treshold*-1:
print('negative means movement to the left')
else:
print('below the tresholds there is little movement')
您必须自己将其转换为puttext。我使用了质心坐标,但您可以选择其他坐标。参见 http://docs.opencv.org/3.1.0/dd/d49/tutorial_py_contour_features.html