[問題] 多張圖片合成影片

看板Python作者 (冬奈特)時間10年前 (2014/01/24 08:43), 編輯推噓1(1016)
留言17則, 4人參與, 最新討論串1/1
剛剛接觸python 所以有點不太熟 有上網查了一下做法 我的程式碼如下 import cv import os, glob,sys path = 'C:\image\' video = cv.CreateVideoWriter('output.avi',-1 , 10,(2456,2936), 1) for infile in glob.glob( os.path.join(path, '*.jpg') ): img = cv.LoadImage(infile) cv.WriteFrame(video, img) del video 但是這樣合成出來的影片大小都是0kb 是哪裡做錯了嗎? 另外 要讀圖片是不是只能用opencv裡的涵式讀? (ex:cv.LoadImage) 而不能用PIL裡的Image.open 麻煩大家了 ============================================================ 謝謝大家幫忙 重寫一次 給之後有需要的人 安裝opencv-python : opencv-python-2.4.8.win32-py2.7.exe (http://ppt.cc/8-Cs) (沒安裝 codec 要安裝一下) import cv import os, glob impath = 'C:/image/' # image path Fname = 'output.avi' # output file name FPS = 10 CODE_TYPE = cv.CV_FOURCC('X','V','I','D') # 註一 Fsize = (height,width) #frame size video = cv.CreateVideoWriter(Fname, CODE_TYPE, FPS, Fsize, is_color = 1) for infile in glob.glob( os.path.join(impath, '*.jpg') ): img = cv.LoadImage(infile) cv.WriteFrame(video, img) del video 註一 CODE_TYPE = 0 => no compression CODE_TYPE = -1 => jump out a msgbox asking for the compress formate ======================================= CODE_TYPE = cv.CV_FOURCC(X,X,X,X) ======================================= cv.CV_FOURCC('H','F','Y','U') # HuffYUV cv.CV_FOURCC('D','R','A','C') # BBC Dirac cv.CV_FOURCC('X','V','I','D') # MPEG-4 Part 2 cv.CV_FOURCC('X','2','6','4') # MPEG-4 Part 10 (aka. H.264 or AVC) cv.CV_FOURCC('M','P','1','V') # MPEG-1 video . . . . -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 128.122.72.56

01/24 11:10, , 1F
\' 是跳脫序列, 所以你這個程式應該會直接 crash 才對
01/24 11:10, 1F

01/24 14:50, , 2F
所以是要把"\"改成"/"嗎? 不過把結果好像一樣 QQ
01/24 14:50, 2F

01/24 21:59, , 3F
我跑你的這段程式有影片出來… 不一樣的地方只有 \ -> /
01/24 21:59, 3F

01/24 22:02, , 4F
跟 ffmpeg 不知道哪個好用
01/24 22:02, 4F

01/24 23:39, , 5F
那我猜說不定是codec的問題?我是新電腦沒裝什麼codec
01/24 23:39, 5F

01/24 23:40, , 6F
請問一下m大妳是選哪種壓縮方式?
01/24 23:40, 6F

01/24 23:51, , 7F
我在createvideo有個參數你沒有誒,你參考看看
01/24 23:51, 7F

01/24 23:52, , 8F
Cv.CV_FOURCC('X','V','I','D')
01/24 23:52, 8F

01/24 23:53, , 9F
如果要方便性,建議使用ffmpeg比較快
01/24 23:53, 9F

01/24 23:55, , 10F
至於要給opencv的圖,當然要用opencv的方法開啟阿XDD
01/24 23:55, 10F

01/25 00:07, , 11F
本來只是想重現你的問題,所以是以你的code去跑的
01/25 00:07, 11F

01/25 00:07, , 12F
執行下去有跳一個小視窗給我選壓縮程式
01/25 00:07, 12F

01/25 00:08, , 13F
就選預設的 Cinepak Codec by Radius 就這樣,就有video
01/25 00:08, 13F

01/25 00:09, , 14F
你可以用 PIL 處理完圖片,再用 pyffmpeg 合成 video
01/25 00:09, 14F

01/25 00:10, , 15F
這樣彈性應該比較好
01/25 00:10, 15F

01/25 02:29, , 16F
感謝大家 我來試看看 ^^
01/25 02:29, 16F

01/25 04:32, , 17F
目前把\->/ 安裝完codec 重開機 就可以了 謝謝大家
01/25 04:32, 17F
※ 編輯: dawnknight 來自: 128.122.72.56 (01/25 05:32) ※ 編輯: dawnknight 來自: 128.122.72.56 (01/25 05:34)
文章代碼(AID): #1IuRSwuW (Python)