2017-04-10 136 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)