OpenCV2(Python)的播放分辨率不正确

时间:2014-01-13 19:09:45

标签: python opencv image-processing

最近我遇到了一个问题,其中来自简单OpenCV程序的回放分辨率从原始来源膨胀。下面是代码。原始视频是分辨率为694x1080的MP4。当我运行脚本时,框架宽度和高度列为704x1088。额外像素来自哪里?我关心的唯一原因是我需要在背景减法中使用捕获的帧,现在这两个图像是不同的分辨率。更令人困惑的是,我在家用电脑上没有遇到这方面的问题,只能在我的工作电脑上使用(而且我不想写两个程序来容纳两台电脑)。最后,工作PC在VLC上以正确的分辨率播放视频。我真的无法弄清楚它来自何处或如何解决它。另外opencv忽略了代码中的.set函数。有什么想法吗?

import cv2

video = cv2.VideoCapture('Fish_test1.mp4')
video.set(cv2.cv.CV_CAP_PROP_FRAME_WIDTH, 694)
video.set(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT, 1080)
bg = cv2.imread('Background_image.jpg')
cv2.namedWindow('Video')


while (1):
    success, image = video.read()
    print(video.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH), video.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT))

    cv2.imshow('Video', image)
    cv2.imshow('BG', bg)

    k = cv2.waitKey(50)

    if k == 27:
        break
    if success == False:
        break

cv2.destroyAllWindows()

0 个答案:

没有答案