Python實(shí)現(xiàn)視頻分解成圖片+圖片合成視頻_第1頁(yè)
Python實(shí)現(xiàn)視頻分解成圖片+圖片合成視頻_第2頁(yè)
Python實(shí)現(xiàn)視頻分解成圖片+圖片合成視頻_第3頁(yè)
Python實(shí)現(xiàn)視頻分解成圖片+圖片合成視頻_第4頁(yè)
Python實(shí)現(xiàn)視頻分解成圖片+圖片合成視頻_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第Python實(shí)現(xiàn)視頻分解成圖片+圖片合成視頻#fourcc=cv2.cv.CV_FOURCC('M','J','P','G')#opencv版本是2

fourcc=cv2.VideoWriter_fourcc(*'XVID')#opencv版本是3

videoWriter=cv2.VideoWriter(video_dir,fourcc,fps,img_size)

#count=1

foriinim_list:

im_name=os.path.join(im_dir+i)

frame=cv2.imdecode(np.fromfile(im_name,dtype=np.uint8),-1)

videoWriter.write(frame)

#count+=1

#if(count==200):

#print(im_name)

#break

videoWriter.release()

print('finish')

if__name__=='__main__':

im_dir=r'E:\py\python3.7\test\test98youhuashiping\shipingchaifen\pho/'#幀存放路徑

video_dir=r'E:\py\python3.7\test\test98youhuashiping\shipingchaifen/test.mp4'#合成視頻存放的路徑

fps=30#幀率,每秒鐘幀數(shù)越多,所顯示的動(dòng)作就會(huì)越流暢

frame2video(im_dir,video_dir,fps)

提示:路徑中不要出現(xiàn)中文和特殊字符,且書(shū)寫(xiě)要規(guī)范!!

二、python視頻拆分+圖片合成(源碼二)

importcv2

importnumpyasnp

importos

os.chdir(r'E:\py\python3.7\test\test98youhuashiping\chaifen')

##讀取視頻,并逐幀分解成圖片

cap=cv2.VideoCapture('1.mp4')#打開(kāi)一個(gè)視頻

isOpened=cap.isOpened()#判斷是否打開(kāi)

print(isOpened)

#獲取視頻的相關(guān)信息,視頻的每一幀圖片的寬度都是一致的

fps=cap.get(cv2.CAP_PROP_FPS)#幀率,即每秒鐘由多少?gòu)垐D片組成

width=int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))#獲取寬度

height=int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))#獲取高度

print(fps,width,height)#輸出相關(guān)信息

i=0

while(isOpened):

#讀取視頻的前兩秒的圖像,共計(jì)2*int(fps)張

ifi==int(fps)*2:

break

else:

i=i+1

(flag,frame)=cap.read()#讀取每一張flagframe

filename='image'+str(i)+'.jpg'

#將讀取的圖片寫(xiě)入文件中,

ifflag==True:

cv2.imwrite(filename,frame,[cv2.IMWRITE_JPEG_QUALITY,100])#確定圖片質(zhì)量,100算是高的

print('end!')

##讀取零散圖片(上面分解的圖片),并將其合成視頻

img=cv2.imread('image1.jpg')

imginfo=img.shape

size=(imginfo[1],imginfo[0])#與默認(rèn)不同,opencv使用height在前,width在后,所有需要自己重新排序

print(size)

#創(chuàng)建寫(xiě)入對(duì)象,包括新建視頻名稱(chēng),每秒鐘多少幀圖片(10張),size大小

#一般人眼最低分辨率為19幀/秒

videoWrite=cv2.VideoWriter('2.mp4',-1,10,size)

foriinrange(1,40):

filename='image'+str(i)+'.jpg'

img=cv2.imread(filename,1)#1表示彩圖,0表示灰度圖

#直接寫(xiě)入圖片對(duì)應(yīng)的數(shù)據(jù)

videoWrite.write(img)

videoWrite.release()#關(guān)閉寫(xiě)入對(duì)象

print('end')

三、python視頻拆分(源碼三)

importcv2#導(dǎo)入opencv模塊

importos

importtime

defvideo_split(video_path,save_path):

對(duì)視頻文件切割成幀

@paramvideo_path:視頻路徑

@paramsave_path:保存切分后幀的路徑

vc=cv2.VideoCapture(video_path)

#一幀一幀的分割需要幾幀寫(xiě)幾

ifvc.isOpened():

rval,frame=vc.read()

else:

rval=False

whilerval:

rval,frame=vc.read()

#每秒提取2幀圖片

ifc%2==0:

cv2.imwrite(save_path+"/"+str('%06d'%c)+'.jpg',frame)

cv2.waitKey(1)

c=c+1

DATA_DIR=r"E:\py\python3.7\test\test98youhuashiping\ceshi\mp4"#視頻數(shù)據(jù)主目錄

SAVE_DIR=r"E:\py\python3.7\test\test98youhuashiping\ceshi\pho2"#幀文件保存目錄

start_time=time.time()

forparents,dirs,filenamesinos.walk(DATA_DIR):

#ifparents==DATA_DIR:

#continue

print("正在處理文件夾",parents)

path=parents.replace("\\","http://")

f=parents.split("\\")[1]

save_path=SAVE_DIR+"http://"+f

#對(duì)每視頻數(shù)據(jù)進(jìn)行遍歷

forfileinfilenames:

file_name=file.split(".")[0]

save_path_=save_path+"/"+file_name

ifnotos.path.isdir(save_path_):

o

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論