如何在OpenCV(Python)的视频输入中选择ROI?

时间:2019-03-07 13:23:20

标签: python opencv keras

我正在使用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)

有帮助吗?

1 个答案:

答案 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数组。裁剪图像区域与从数组中提取索引相同。