批量將.jpg圖片轉換為.yuv格式(使用ffmepg)
阿新 • • 發佈:2018-12-18
轉載請註明出處。
由於跑編碼的需要,所以需要製作一個.yuv格式的圖片資料集,但是手頭只有.jpg格式的,故記錄下轉換過程。
①安裝ffmpeg
②安裝ffmpeg的python3介面ffmpy3
在命令列中輸入以下命令:
pip install ffmpy3
③將下載好的windows版解壓,把ffmpeg.exe複製到你將要跑python程式碼的資料夾裡
④python程式碼如下:
# -*- coding: utf-8 -*- import os from PIL import Image from ffmpy3 import FFmpeg in_jpgDatasetPath = 'I:/VOC/trainval' out_yuvDatasetPath = 'I:/VVC/loop/yuvdataset' piclist = os.listdir(in_jpgDatasetPath) for pic in piclist: picname = pic.split('.')[0] picpath = os.path.join(in_jpgDatasetPath,pic) img = Image.open(picpath) in_wid,in_hei = img.size out_wid = in_wid//16*16 out_hei = in_hei//16*16 size = '{}x{}'.format(out_wid,out_hei) #輸出檔案會縮放成這個大小 outname = out_yuvDatasetPath + '/' + picname + '_'+size+ '.yuv' ff = FFmpeg(inputs={picpath:None}, outputs={outname:'-s {} -pix_fmt yuv420p'.format(size)}) print(ff.cmd) ff.run()