【问题标题】:Predict model classes only on ROI part in cv2 video frame仅在 cv2 视频帧中的 ROI 部分预测模型类
【发布时间】:2021-01-25 11:43:02
【问题描述】:

以下是我的代码,其中包含 ROI 矩形。我想仅根据 ROI 框中捕获的图像而不是整个图像来预测我的模型

import numpy as np
import cv2
from keras.models import load_model
import keras
model = keras.models.load_model('Desktop/BCD_nothing_rmsprop.h5')
def sketch_transform(frame):
    return frame

cam_capture = cv2.VideoCapture(0)
cv2.destroyAllWindows()
upper_left = (50, 50)
bottom_right = (300, 300)
while True:
    _, image_frame = cam_capture.read()
    #Rectangle marker
    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)
    
    
    #Replacing the sketched image on Region of Interest
    image_frame[upper_left[1] : bottom_right[1], upper_left[0] : bottom_right[0]] = sketcher_rect
    classes = model.predict(np.array([rect_img]))
    cv2.imshow("Sketcher ROI", image_frame)
    k = cv2.waitKey(30) & 0xff
    if k ==27:
        break
        
cam_capture.release()
cv2.destroyAllWindows()
    

如何仅预测矩形 ROI 或变量 rect_img 内的图像。

【问题讨论】:

    标签: image numpy opencv image-processing keras


    【解决方案1】:

    之前创建resize函数。那就试试吧

    while True:
        _, image_frame = cam_capture.read()
        #Rectangle marker
        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
        ##Resize ROI first by create function
        sketcher_rect = resize_function(sketcher_rect,(width,height))
    
    
        #Replacing the sketched image on Region of Interest
        image_frame[upper_left[1] : bottom_right[1], upper_left[0] : bottom_right[0]] = sketcher_rect
        classes = model.predict(sketcher_rect.reshape(1,width,height,3))
        cv2.imshow("Sketcher ROI", image_frame)
        k = cv2.waitKey(30) & 0xff
        if k ==27:
            break
    cam_capture.release()
    cv2.destroyAllWindows()
    

    【讨论】:

      猜你喜欢
      • 2020-10-18
      • 2020-07-05
      • 1970-01-01
      • 2021-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-14
      相关资源
      最近更新 更多