你爲什麼不檢查錯誤?如果CreateVideoWriter()
失敗,你永遠不會知道。
我認爲CreateVideoWriter正在返回NULL。添加適當的代碼來檢查退貨並驗證這是否爲真。
如果是這樣,問題很可能是CV_FOURCC()
哪一個沒有找到編解碼器。
然後,檢查這個答案其它編解碼器:Creating AVI files in OpenCV
我還建議你更新的OpenCV到最近的可用的(我認爲它V2.2)。
編輯:
你還缺少最後一個參數在CreateVideoWriter:
#!/usr/bin/env python
import sys
from opencv.cv import *
from opencv.highgui import *
im1 = cvLoadImage("img1.jpg")
if not im1:
print "Could not load im1"
im2 = cvLoadImage("img2.jpg")
if not im2:
print "Could not load im2"
fps = 4.0
frame_size = cvGetSize(im1)
#writer = cvCreateVideoWriter("out.avi", CV_FOURCC('M', 'J', 'P', 'G'), fps, frame_size, True)
writer = cvCreateVideoWriter("out.avi", CV_FOURCC('F', 'L', 'V', '1'), fps, frame_size, True)
if not writer:
print "Error in creating video writer"
sys.exit(1)
else:
print cvWriteFrame(writer, im1)
print cvWriteFrame(writer, im2)
cvReleaseVideoWriter(writer)
我想有一個與OpenCV中/ Linux的/ Python的關於cvCreateVideoWriter的問題()。我會嘗試與開發者交談,並在獲得答覆時在此更新。
感謝您的回覆,以取代
cvReleaseVideoWriter(writer)
:)我是新來的蟒蛇,很抱歉,如果這是一個愚蠢的問題,但因爲這是通過Python綁定,創建CreateVideoWriter時,我仍然檢查None嗎?我認爲它返回一個無null對象。我也嘗試了你提到的鏈接上提到的所有不同的編解碼器,並且運行OpenCV 2.2。但問題仍然存在:s還有什麼我可以嘗試的嗎?再次感謝 – iman453 2011-04-25 21:30:19我添加了一個「if writer is None:print」error「」check。是的,我有權在這個目錄下創建文件。感謝您的幫助,我非常感謝您花時間! – iman453 2011-04-25 21:49:30
對不起,我用im1.width和height運行它。我不小心粘貼了錯誤的版本。對於那個很抱歉。 – iman453 2011-04-25 21:50:35