我正在创建一个深度学习程序,可以识别手势数字。我已经完成了对模型的训练,现在需要在实时视频中使用它。 因此,我正在尝试创建一个openCV程序,其中用户将把他/她的手放在帧的区域 of interest(即一个框)内,然后该ROI将被传送到我的CNN模型中。根据手势,我的CNN模型将进行回复。
我编写了这段代码,在其中,我成功创建了一个300x300的正方形(我的ROI),但是如何使用该区域 of interest将其提供给我的CNN模型呢? 我只想将那个正方形部分作为输入送入我的模型。
import traceback
import cv2
import numpy as np
import math
cam = cv2.VideoCapture(0)
while(1):
try:
ret, frame = cam.read()
frame = cv2.flip(frame,1)
cv2.rectangle(frame,(200,100),(500,400),(0,255,0),2)
cv2.imshow('curFrame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
except Exception:
traceback.print_exc()
pass
cam.release()
cv2.destroyAllWindows()
** 附加内容
ROI = frame[100:200 , 100:200]
那行代码是什么意思?
except
子句中使用pass
。使用Python中的OpenCV图像存储为numpy数组。请参阅numpy文档以了解如何从数组中获取区域的索引:https://docs.scipy.org/doc/numpy/reference/arrays.indexing.html - alkasmframe[100:200 , 100:200]
means that you want apart inframe
which goes from (100,100) to (200,200). And is y,x, likeframe[y1:y2, x1:x2]
- api55