2017-04-10 358 views
0

在问题的主要思路的头。我正在使用Python 2.7,openCV。最后,我有这样的代码:如何调整帧的视频,从与宽高比

import cv2 
vidcap = cv2.VideoCapture('myvid2.mp4') 
success,image = vidcap.read() 
count = 0; 
print "I am in success" 
while success: 
    success,image = vidcap.read() 
    resize = cv2.resize(image, (640, 480)) 
    cv2.imwrite("%03d.jpg" % count, resize)  
    if cv2.waitKey(10) == 27:      
     break 
    count += 1 

我们有视频和切割它在每帧中,为.jpg图片。与此同时,我们将尺寸从任何尺寸调整为640x480。所有图像都有正确的阅读顺序。代码没有任何问题,它的工作很好,但!!它不保存上一页。图像比例。这是个大问题,因为我需要它。

例如,它怎么看的喜欢,从1920×1080调整: Resized image by pure code

有一个在比例问题,因为你可以看到。 1920×1080 16:9,而640:480 4:3

它应该如何在我的梦想: Resized image in ideal code

首先,感谢您的阅读它。我会很高兴,如果你能帮我解决这个问题我的代码〜 祝你有个美好的一天,我的朋友。

回答

2

代替使用硬编码值640和480的,则可以通过一个值除以原始帧的高度和宽度,并提供其作为参数,如下所示:

while success: 
    success,image = vidcap.read() 
    height , width , layers = img.shape 
    new_h=height/2 
    new_w=width/2 
    resize = cv2.resize(image, (new_w, new_h)) 
    cv2.imwrite("%03d.jpg" % count, resize) 
相关问题