国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用Python代碼實(shí)現(xiàn)視頻(如.MP4)與圖片(如.jpg)文件格式的相互轉(zhuǎn)換

這篇具有很好參考價(jià)值的文章主要介紹了使用Python代碼實(shí)現(xiàn)視頻(如.MP4)與圖片(如.jpg)文件格式的相互轉(zhuǎn)換。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1.使用Python代碼將視頻文件(.MP4格式)轉(zhuǎn)換為圖片(.jpg格式)

對(duì)視頻進(jìn)行抽幀操作,將視頻逐幀轉(zhuǎn)換為圖片(.jpg格式的圖片的文件)
此處采取的方法是:對(duì)視頻.MP4文件每隔10幀截取一張.jpg格式的圖片
需要使用的Python方法cv2在opencv-python庫(kù)中,下載安裝方式;

pip install opencv-python

實(shí)現(xiàn)上述功能的Python代碼如下:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-771764.html

import cv2
# TODO 將原視頻轉(zhuǎn)換為圖片
def VideotoPicture():
    # 視頻地址  創(chuàng)建一個(gè)VideoCapture對(duì)象,指定讀取的視頻文件
    cap = cv2.VideoCapture(r'C:\Users\12292\Desktop\1.mp4')
    # 通過(guò)攝像頭的方式
    # cap = cv2.VideoCapture(1)

    fps = cap.get(cv2.CAP_PROP_FPS)  # 獲取幀率 每一秒的視頻幀數(shù)
    width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))  # 獲取寬度
    height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))  # 獲取高度

    # 判斷視頻是否讀取成功  成功返回True  失敗返回False
    sucess = cap.isOpened()

    frame_count = 0
    # 視頻得到的圖片名字img_name
    img_name = 0
    while sucess:
        frame_count += 1
        # 讀取視頻每一幀圖像
        sucess, frame = cap.read()
        # TODO 每隔10幀存儲(chǔ)一張圖片
        if (frame_count % 10 == 0):
            img_name += 1
            # 圖片存儲(chǔ)地址以及存儲(chǔ)格式.jpg  frame就是視頻轉(zhuǎn)換得到的圖片  視頻得到的圖片名字img_name從1開(kāi)始
            # 即最終視頻轉(zhuǎn)換得到的圖片名字依次為1.jpg,2.jpg,3.jpg.................
            cv2.imwrite(r'C:\Users\12292\Desktop\1\%d.jpg' % img_name, frame)

    print("幀率(每秒視頻的幀數(shù)):", fps)
    # 釋放視頻資源
    cap.release


if __name__ == '__main__':
    VideotoPicture()  # 視頻轉(zhuǎn)圖像
2.使用Python代碼將圖片(.jpg,.png等格式)轉(zhuǎn)換為視頻文件(例如.MP4格式)

基本步驟如下:
??a. 使用glob獲取路徑下的所有圖片;
??b. cv2.imread()讀取所有圖片;
??c. 將讀取的圖片存儲(chǔ)在新的列表中,img_array;
??d. 使用cv2.VideoWriter()創(chuàng)建VideoWriter對(duì)象,注意參數(shù)的設(shè)置;
??e. 使用cv2.VideoWriter().write()保存 img_array 中的每一幀圖像到視頻文件;
??f. 釋放 VideoWriter對(duì)象;

對(duì)眾多圖片進(jìn)行拼接合成操作,將多張圖片拼接成一個(gè)視頻文件(例如.MP4格式)

實(shí)現(xiàn)上述功能的Python代碼如下:

import cv2
import numpy as np
import glob
import os

# 其它格式的圖片也可以 此處使用的是.jpg格式的圖片
img_array = []
# 指出用于生成視頻的圖片所在的存儲(chǔ)路徑  glob獲取路徑下的所有圖片
for filename in glob.glob('C:/Users/12292/Desktop/1/*.jpg'):
    # 讀取所有圖片
    img = cv2.imread(filename)
    height, width, layers = img.shape
    # 獲取圖片大小尺寸
    size = (width, height)
    # 將讀取的圖片存儲(chǔ)在新的列表中,img_array
    img_array.append(img)

# avi:視頻類(lèi)型,或者導(dǎo)出.mp4類(lèi)型的視頻文件也可以
# cv2.VideoWriter_fourcc(*'mp4v'):編碼格式
# 5:視頻幀率
# size:視頻中圖片大小
# 視頻輸出地址與命名:C:/Users/12292/Desktop/2/2.mp4
# 使用cv2.VideoWriter()創(chuàng)建VideoWriter對(duì)象
out = cv2.VideoWriter('C:/Users/12292/Desktop/2/2.mp4',
                      # cv2.VideoWriter_fourcc(*'DIVX'),
                      cv2.VideoWriter_fourcc(*'mp4v'),
                      5, size)

for i in range(len(img_array)):
    # 使用cv2.VideoWriter().write()保存 img_array 中的每一幀圖像到視頻文件;
    out.write(img_array[i])
# 釋放 VideoWriter對(duì)象
out.release()

到了這里,關(guān)于使用Python代碼實(shí)現(xiàn)視頻(如.MP4)與圖片(如.jpg)文件格式的相互轉(zhuǎn)換的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包