最近我遇到了一个问题,其中来自简单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()