首页 > 解决方案 > 在哪里添加 cv2.resize 以获得适当的分辨率?

问题描述

我的代码有问题。我不知道我可以cv.resize()在哪里获得需求解决方案。我想更改它,因为我上传的文件是全高清分辨率,我想获得更小的分辨率。我会很高兴得到解决方案和解释。

下面我展示我的代码:

import cv2
import numpy as np

cap = cv2.VideoCapture('DJI_0037.MP4')

while cap.isOpened():

    ret, frame = cap.read()

    if ret == True:
        frame_resize = cv2.resize(frame, (640, 480), interpolation=cv2.INTER_CUBIC)
    else:
        break

    ret, frame_resize1 = cap.read(frame_resize)
    ret, frame_resize2 = cap.read(frame_resize)  

    diff = cv2.absdiff(frame_resize1, frame_resize2) 
    gray = cv2.cvtColor(diff, cv2.COLOR_BGR2GRAY) 
    blur = cv2.GaussianBlur(gray, (5, 5), 0)  
    _, thresh = cv2.threshold(blur, 20, 255, cv2.THRESH_BINARY)
    dilated = cv2.dilate(thresh, None, iterations=3)
    contours, _ = cv2.findContours(dilated, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

    for contour in contours: 
        (x, y, w, h) = cv2.boundingRect(contour)  
        if cv2.contourArea(contour) < 2000:
            continue
        cv2.rectangle(frame_resize1, (x, y), (x + w, y + h), (0, 255, 0), 2)
        cv2.putText(frame_resize1, "Status: {}".format('Movement'), (10, 20), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255),3) 



    cv2.imshow("feed", frame_resize1)
    frame_resize1 = frame_resize2
    ret, frame_resize2 = cap.read()

    if cv2.waitKey(40) == 27:
        break

cap.release()
cv2.destroyAllWindows()

标签: pythonopencvresolution

解决方案


推荐阅读