python視頻分幀


1.每隔幾幀取一張

import cv2
 
cap = cv2.VideoCapture("./query_video/test_video_0.mp4")
c = 1
frameRate = 10  # 幀數截取間隔(每隔100幀截取一幀)
 
while(True):
    ret, frame = cap.read()
    if ret:
        if(c % frameRate == 0):
            print("開始截取視頻第:" + str(c) + "")
            # 這里就可以做一些操作了:顯示截取的幀圖片、保存截取幀到本地
            cv2.imwrite("./capture_image/" + str(c) + '.jpg', frame)  # 這里是將截取的圖像保存在本地
        c += 1
        cv2.waitKey(0)
    else:
        print("所有幀都已經保存完成")
        break
cap.release()

 

2.每隔幾秒取一張

import cv2
cap = cv2.VideoCapture("./query_video/test_video_0.mp4")
c = 1
timeRate = 10  # 截取視頻幀的時間間隔(這里是每隔10秒截取一幀)
 
while(True):
    ret, frame = cap.read()
    FPS = cap.get(5)
    if ret:
        frameRate = int(FPS) * timeRate  # 因為cap.get(5)獲取的幀數不是整數,所以需要取整一下(向下取整用int,四舍五入用round,向上取整需要用math模塊的ceil()方法)
        if(c % frameRate == 0):
            print("開始截取視頻第:" + str(c) + "")
            # 這里就可以做一些操作了:顯示截取的幀圖片、保存截取幀到本地
            cv2.imwrite("./capture_image/" + str(c) + '.jpg', frame)  # 這里是將截取的圖像保存在本地
        c += 1
        cv2.waitKey(0)
    else:
        print("所有幀都已經保存完成")
        break
cap.release()

 

 

 

 

 

參考:https://blog.csdn.net/David_jiahuan/article/details/105550791


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM