[python]Python+Opencv實現把圖片、視頻互轉


1. 安裝Opencv包

  可以嘗試安裝anaconda,參考:如何安裝Python運行環境Anaconda?(視頻教程)

  或者

   $ pip install opvencv-python 

2.實現代碼:

  視頻轉為圖片:

import cv2
cap=cv2.VideoCapture('E:/video/video-02.mp4') # 獲取一個視頻打開cap
isOpened=cap.isOpened # 判斷是否打開
print(isOpened)
fps=cap.get(cv2.CAP_PROP_FPS)
print(fps)
# 獲取寬度
width=int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
# 獲取高度
height=int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
i=0
while(isOpened):
    # 保存前十幀
    if i==10:
        break
    else:
        i+=1
    (flag,frame)=cap.read() # 讀取每一幀,一張圖像flag 表明是否讀取成果 frame內容
    fileName='E:/video/image'+str(i)+'.jpg'
    print(fileName)
    # flag表示是否成功讀圖
    if flag==True:
        # 控制質量
        cv2.imwrite(fileName,frame,[cv2.IMWRITE_JPEG_QUALITY,100])
print('end!')

  圖片保存為視頻:

import os
import cv2
import numpy as np

path = 'E:/video/img'
filelist = os.listdir(path)
#fourcc = cv2.cv.CV_FOURCC('M','J','P','G') #opencv版本是2
fourcc = cv2.VideoWriter_fourcc(*'XVID') #opencv版本是3

fps = 5  # 視頻每秒24幀
size = (1920, 1080)  # 需要轉為視頻的圖片的尺寸
# 可以使用cv2.resize()進行修改

video = cv2.VideoWriter('E:/video/2.avi', fourcc, fps, size)
# 視頻保存在當前目錄下

for item in filelist:
    if item.endswith('.jpg'):
        # 找到路徑中所有后綴名為.png的文件,可以更換為.jpg或其它
        item = path + item
        img = cv2.imread(item)
        video.write(img)
video.release()
cv2.destroyAllWindows()

 

如何安裝Python運行環境Anaconda?(視頻教程)


免責聲明!

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



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