盒装OpenCV 3.4.2 VideoCapture信函

时间:2018-07-24 15:47:39

标签: python windows opencv

我在Windows上使用opencv。当我使用3.4.1时,我能够捕获全高清图像和半高清图像。更新到3.4.2之后,该图像将被装箱。分辨率是正确的,但是在以前有黑条的地方有图像数据。如何摆脱这个信箱?

这是我的捕获代码:

import cv2
import json

scaleFactor = 1
cap = cv2.VideoCapture(2)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, int(1920*scaleFactor))
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, int(1080*scaleFactor))

print cap.get(cv2.CAP_PROP_FRAME_WIDTH)
print cap.get(cv2.CAP_PROP_FRAME_HEIGHT)

while(True):
    # Capture frame-by-frame
    ret, frame = cap.read()
    if not ret:
        continue

    # Display the resulting frame
    cv2.imshow('frame',frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()

输出的打印语句是

1920.0
1080.0

这是输出的图片

Letter boxed image

1 个答案:

答案 0 :(得分:1)

我通过将cv::VideoCapture(index, apiPreference)中的apiPreferencecv::CAP_ANY更改为cv::CAP_DSHOW来自己解决了这个问题。

所以,就您而言:

cap = cv2.VideoCapture(2, cv2.CAP_DSHOW)