输出视频与原始视频Open CV不同

时间:2019-09-13 17:21:56

标签: python opencv

在开放式简历中阅读视频时遇到问题。当我运行输出时,它不会显示整个视频。就像放大的视频。输出视频与原始视频不同。如何显示整个视频?我是python的新手,打开cv。下面是输出的屏幕截图。 enter image description here

下面是视频的真实图像 enter image description here

vidCap = cv2.VideoCapture('video.mp4')

 while (True):
    success, img = vidCap.read()
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    th, bw = cv2.threshold(gray, 170, 255, cv2.THRESH_BINARY)
    bw = imclearborder(bw)
    RemoveTop(bw, round(bw.shape[0] * 0.6))
    RemoveTriangle(bw)
    bw = bwareaopen(bw, 700)
    blueMask = img.copy()
    blueMask[:, :] = (255, 0, 0)
    cv2.copyTo(blueMask, bw, img)
    cv2.imshow('Output', img)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
vidCap.release()
cv2.destroyAllWindows()

我希望输出显示的视频与原始视频相同

2 个答案:

答案 0 :(得分:0)

我猜你的视频分辨率大于屏幕分辨率。

第一张图片来自opencv窗口,我相信第二张图片不是由opencv生成的,而是由视频播放器生成的,该视频播放器会缩小视频以适合您的屏幕。

您应该使用以下未经测试的代码来调整img的大小:

imgToShow = cv.resize(img, img.size()/2)
cv2.imshow(imgToShow)

我将opencv与C ++一起使用,而不是与Python一起使用,因此请检查语法。

答案 1 :(得分:0)

scale_percent = 60  # percent of original size
width = int(img.shape[1] * scale_percent / 100)
height = int(img.shape[0] * scale_percent / 100)
dim = (width, height)
resized = cv2.resize(img, dim, interpolation=cv2.INTER_AREA)
cv2.imshow('Output', resized)