0

私はopencvが初めてです。Python コードのコンパイル中に、次のエラーが発生します。

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

ありがとう。

4

2 に答える 2

1

IplImageは、OpenCVの基本的な画像クラスです。cv.QueryFrameIplImageを返す必要があります。しかし、あなたの場合はそうではないようです。

に対してチェックしてみてくださいNULL。エラーが発生した場合、画像の代わりにQueryFrame戻ります。NULL

また、この質問をチェックしてください。あなたはここであなたの答えを見つけるかもしれません。

于 2012-09-18T23:02:24.900 に答える
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インターフェイスは、より簡単で信頼性が高いです。 この質問cv2では、インターフェイスを使用して画像フレームをファイルに書き込む方法について説明しました。

上記のコーデックが機能しない場合は、問題が発生している可能性があります。有効なコーデックを見つける方法については、この質問を参照してください。

于 2012-09-19T18:38:03.827 に答える