我正在使用OpenCV进行手语识别(手势)。我想从整个框架中选择一个特定区域(ROI)作为输入并将其提供给模型。现在,我可以对整个框架执行相同的操作,但是没有投资回报率。这是我到目前为止尝试过的代码:
_, image_frame = cam_capture.read()
r = cv2.rectangle(image_frame, upper_left, bottom_right, (100, 50, 200), 5)
rect_img = image_frame[upper_left[1] : bottom_right[1], upper_left[0] : bottom_right[0]]
sketcher_rect = rect_img
sketcher_rect = sketch_transform(sketcher_rect)
cv2.resize(sketcher_rect, (28,28), interpolation = cv2.INTER_AREA)
pred_probab, pred_class = keras_predict(model, sketcher_rect)
print(pred_class, pred_probab)
cv2.imshow('image_frame',sketcher_rect)
有帮助吗?
答案 0 :(得分:0)
如果我对您的理解正确,您只是想从图像上切出一个区域,对吗? 这应该起作用:
def crop_image(image, x, y, width, height):
"""
image: a cv2 frame
x, y, width, height: the region to cut out
"""
return image[y:y + height, x:x + width]
请记住,cv2图像仅仅是numpy数组。裁剪图像区域与从数组中提取索引相同。