我是图像处理的初学者。我想在python中使用openCV从网络摄像头检测眼球运动。我使用以下代码片段检测右眼:
eye_cascade = cv2.CascadeClassifier('haarcascade_righteye_2splits.xml')
eyes = eye_cascade.detectMultiScale(gray, minSize=(30, 30))
for (ex, ey, ew, eh) in eyes:
cv2.rectangle(frame, (ex, ey), (ex+ew, ey+eh), (0, 255, 0), 2)
print(str(ex)+'b'+str(ey))
print("Sent\n")
它实时显示我右眼的像素,如下所示:
.
.
.
260b216
Sent
261b219
Sent
.
.
.
当我移动眼睛时,我可以看到像素值的变化,但我希望python计算两个连续像素值之间的距离:sqrt((261-260)^2+(219-216)^2),并将此值实时显示为输出。我必须使用哪些numpy/math/其他函数来实现这一点
要计算两个连续帧之间的欧几里德距离。(source)
您可以初始化计数器
cnt
以对两个连续帧进行计数。每次获得(ex, ey, ew, eh)
时,将cnt
增加一。如果获得两个连续帧,请计算它们之间的距离并打印要计算距离,需要存储以前的坐标(
exy_prv
)和当前坐标(exy_cur
)下面是一个示例代码:
结果
相关问题 更多 >
编程相关推荐