日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Python將視頻或者動態圖gif逐幀保存為圖片

系統 1738 0

?????? 本文是基于opencv將視頻和動態圖gif保存為圖像幀。可以根據輸入視頻格式的不同,修改第21行。

?????? 對動圖的處理不同于視頻,PIL庫包含對圖像序列的基本支持。當打開gif圖像時,自動加載第一幀。當圖像讀取完成時,拋出EOFError異常。我們可以使用seek()與tell()函數完成圖像幀的讀取。

?????? 本代碼的前部分是對文件的讀取。數據集文件結構如下:

            
              |——datasets
     |——action1
           action1_1.gif
           action1_2.gif
           ......
     |——action2
           action2_1.gif
           action2_2.gif
           ......

            
          
            
              import cv2
import os
from PIL import Image

video_path = 'PATH_ROOT/datasets/' #視頻或gif圖像的路徑
save_path = 'PATH_ROOT/save/'   #保存幀的路徑

action_list = os.listdir(video_path)

for action in action_list:
    if not os.path.exists(save_path+action):
        os.mkdir(save_path+action)
    video_list = os.listdir(video_path+action)
    for video in video_list:
        prefix = video.split('.')[0]
        if not os.path.exists(save_path+action+'/'+prefix):
            os.mkdir(save_path+action+'/'+prefix)
        save_name = save_path + action + '/' + prefix + '/'
        video_name = video_path+action+'/'+video
        name = video_name.split('.')[1]
        if name == "avi":
            cap = cv2.VideoCapture(video_name)
            fps = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
            fps_count = 0
            for i in range(fps):
                ret, frame = cap.read()
                if ret:
                    cv2.imwrite(save_name + str(10000 + fps_count) + '.jpg', frame)
                    fps_count += 1
        if name == "gif":
           im = Image.open(video_name)
           #當打開一個序列文件時,PIL庫自動加載第一幀。
           #可以使用seek()函數和tell()函數在不同幀之間移動。實現保存
           try:
              while True:
                   current = im.tell()
                   #為了保存為jpg格式,需要轉化。否則可以保存為png
                   img = im.convert('RGB')  
                   img.save(save_name+'/'+str(10000+current)+'.jpg')
                   im.seek(current + 1)
           except EOFError:
               pass

            
          

?


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 玛沁县| 通辽市| 石首市| 通河县| 翁源县| 凤冈县| 册亨县| 通渭县| 田东县| 新安县| 漳浦县| 股票| 龙口市| 高阳县| 珠海市| 巴彦县| 黄冈市| 石楼县| 临邑县| 海丰县| 五家渠市| 定安县| 彭水| 双城市| 邳州市| 郎溪县| 张家口市| 偏关县| 广平县| 泰兴市| 科尔| 博乐市| 井陉县| 临桂县| 卢氏县| 股票| 寻乌县| 乐东| 随州市| 阜康市| 青阳县|