中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python如何將視頻轉換為圖片

發布時間:2022-01-04 12:54:58 來源:億速云 閱讀:133 作者:柒染 欄目:開發技術

Python如何將視頻轉換為圖片,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

前言

代碼讓人頭禿,可是我喜歡上了代碼的邏輯感和代碼解決問題的力量。
(我要對這個專題的圖片進行修改,縮小看和我導頭像有點像QAQ)

代碼展示

此段代碼能夠實現多個文件夾中多個視頻片段的轉換,代碼的具體含義可以參考注釋。
具體操作為將此段代碼復制粘貼到創建好的main.py文件,配置好第63行的源文件路徑,然后運行。

# 將四個文件夾中的多個視頻文件轉換為圖片
import cv2
import os


number_in_dir = []  # 可以去掉
def video2image(video_path, image_save_dir):
    # 1. 將圖片的存儲路徑加上源文件的文件夾名,如'Coffee_room_01'等。
    if os.path.exists(video_path):  # 判斷源路徑是否正確
        print(video_path + '\t ok')
        if video_path.split('\\')[-2] != 'Videos':  # 這個根據我文件路徑自行添加的
            image_save_dir += video_path.split('\\')[-2] + '\\'
        else:
            image_save_dir += video_path.split('\\')[-3] + '\\'

        number_in_dir.append(len(os.listdir(video_path)))  # 可以去掉
    else:
        print(video_path + ' \033[0;37;41merror\033[0m')
        return

    # 2. 依次讀取源文件里的文件,如果后綴名是‘avi'或 'MP3',則創建一個關于文件名的子文件夾
    files_in_video_path_list = os.listdir(video_path)
    print(len(files_in_video_path_list))  # 獲取當前文件夾下文件個數,用來判斷是否有其他類型的文件
    file_count = 0  # 用于統計個數,驗證是否全為視頻文件,會與len(files_in_video_path_list)進行比較

    for file_in_video_path in files_in_video_path_list:
        file_name = os.path.basename(file_in_video_path)
        if file_name.split('.')[-1] == 'avi' or file_name.split('.')[-1] == 'mp3':
            file_count += 1  # 視頻文件數+1
            every_video_save_dir = file_name.split('.')[0] + '\\'
            if not os.path.exists(image_save_dir + every_video_save_dir):  # 創建屬于相應文件夾的存儲路徑
                os.makedirs(image_save_dir + every_video_save_dir)
        else:
            print(' \033[0;37;41merror\033[0m')
            break

        # 3. 打印正在處理文件的序號和他的文件名,并開始轉換
        print(str(file_count) + ':' + file_name)
        cap = cv2.VideoCapture(video_path + file_name)

        flag = cap.isOpened()
        if not flag:
            print("open" + video_path + file_name + "error!")

        frame_count = 0  # 給每一幀標號
        while True:
            frame_count += 1
            flag, frame = cap.read()
            if not flag:  # 如果已經讀取到最后一幀則退出
                break
            if os.path.exists(image_save_dir + every_video_save_dir + str(frame_count) + '.jpg'):  # 在源視頻不變的情況下,如果已經創建,則跳過
                break
            cv2.imwrite(image_save_dir + every_video_save_dir + str(frame_count) + '.jpg', frame)

        cap.release()
        print(file_name + ' save to ' + image_save_dir + every_video_save_dir + 'finished ')  # 表示一個視頻片段已經轉換完成
    if file_count != len(files_in_video_path_list):
        print(' \033[0;37;41Maybe loss something\033[0m')


if __name__ == '__main__':
    # 需要轉換的文件路徑列表(自定義修改)
    video_path_list = ['E:\\Datasets_FallDetection\\2 LE2I\Coffee_room_01\\Coffee_room_01\\Videos\\',
                       'E:\\Datasets_FallDetection\\2 LE2I\Home_01\\Home_01\Videos\\',
                       'E:\\Datasets_FallDetection\\2 LE2I\Lecture_room\\Lecture room\\',
                       'E:\\Datasets_FallDetection\\2 LE2I\\Office\\Office\\']

    # 預期存儲在的主文件夾,即'result'文件夾
    image_save_dir = '.\\result\\'

    # 進行轉換
    for video_path in video_path_list:
        video2image(video_path, image_save_dir)

結果展示

將創建’result’主文件夾和副文件夾

Python如何將視頻轉換為圖片

每個副文件夾下都將生成與視頻名相對應的子文件夾,并按視頻幀數順序轉換為jpg圖片。

Python如何將視頻轉換為圖片

終端上將提示正在處理的文件路徑,正在對哪個視頻進行轉換和轉換完成提示。

Python如何將視頻轉換為圖片

關于Python如何將視頻轉換為圖片問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

屏东市| 黎川县| 广水市| 陈巴尔虎旗| 全州县| 杂多县| 平武县| 长岭县| 博罗县| 正阳县| 西青区| 曲靖市| 二连浩特市| 同心县| 扬中市| 民乐县| 云和县| 刚察县| 天长市| 大冶市| 瑞丽市| 洛浦县| 遵化市| 日照市| 禄丰县| 墨脱县| 达日县| 黄冈市| 颍上县| 海伦市| 涿州市| 特克斯县| 巴彦县| 榆中县| 济阳县| 新邵县| 杭州市| 白河县| 淄博市| 台北县| 新乡市|