2012-09-18 104 views
0

我是opencv的新手。在編譯Python代碼時,我收到以下錯誤。typeerror參數'image'必須是iplimage

TypeError: argument 'image' must be iplimage 

請解釋一下iplimage是什麼,爲什麼我得到這個。

這裏是我的代碼:

import cv 
capture=cv.CaptureFromCAM(0) 
image=cv.QueryFrame(capture) 
writer=cv.CreateVideoWriter("output.avi", 0, 15,(800,600) , 1) 
count=0 
cv.NamedWindow('Image_Window') 
while count<250: 
    image=cv.QueryFrame(capture) 
    cv.WriteFrame(writer, image) 
    cv.ShowImage('Image_Window',image) 
    cv.WaitKey(2) 
    count+=1 

感謝。

+0

您應該閱讀opencv文檔。在那裏你會發現一個'IplImage'是什麼。 – Vicent

+2

如果您是OpenCV的新手,那麼您不應該學習傳統界面。 'cv2'命名空間中有一個新的python界面。 –

回答

1

IplImage是OpenCV中的基本圖像類。 cv.QueryFrame應該返回一個IplImage。但看起來,它不適合你的情況。

您應該嘗試檢查NULLQueryFrame返回NULL而不是出現錯誤時的圖像。

另外,檢查出THIS的問題。你可能會在這裏找到你的答案。

1

您沒有向視頻編寫器提供有效的編解碼器。我嘗試了你的代碼,並得到一個錯誤,然後我改變了正在使用的編解碼器,它工作。

你應該改變這一行:

writer=cv.CreateVideoWriter("output.avi", 0, 15,(800,600) , 1) 

這樣:

writer=cv.CreateVideoWriter("output.avi", cv.CV_FOURCC('i','Y', 'U', 'V'), 15,(800,600) , 1) 

但是Andrey Kamaev是說你應該寧可不使用cv接口正確,較新的cv2接口既更容易和更可靠。 In this question我介紹瞭如何使用cv2接口將圖像幀寫入文件。

如果上面提到的編解碼器不適合你,恐怕你可能會遇到一些麻煩。您可以參考this question瞭解更多關於尋找有效編解碼器的信息。

相關問題