7

Python opencv-2.4.3 でコーディングしようとしていますが、以下のようなエラーが表示されます

Traceback (most recent call last):
 File "/home/OpenCV-2.4.3/cam_try.py", line 6, in <module>
cv2.imshow('video test',im)
 error: /home/OpenCV-2.4.3/modules/core/src/array.cpp:2482: error: (-206)           Unrecognized or unsupported array type in function cvGetMat

私はそれが何を意味するのか理解できません。誰か助けてくれますか? ありがとうございました。

4

7 に答える 7

6

関連するエラー メッセージのスニペットはUnrecognized or unsupported array type in function cvGetMat. このcvGetMat()関数は、配列を に変換しますMat。AMatは、OpenCV が C/C++ の世界で使用する行列データ型です (注: 使用している Python OpenCV インターフェイスは Numpy 配列を使用し、バックグラウンドでMat配列に変換されます)。その背景を念頭に置いて、問題は、im渡している配列のcv2.imshow()形式が不十分であることのようです。2 つのアイデア:

  1. これは、Web カメラの異常な動作が原因である可能性があります...一部のカメラでは、時々 null フレームが返されます。im配列をに渡す前にimshow()、null でないことを確認してください。

  2. すべてのフレームでエラーが発生する場合は、実行中の処理の一部を削除cv2.imshow()し、Web カメラからフレームを取得した直後に呼び出します。それでも問題が解決しない場合は、ウェブカメラに問題があることがわかります。それ以外の場合は、問題を特定するまで、処理を 1 行ずつ追加します。たとえば、次のように開始します。

    while True:
        # Grab frame from webcam
        retVal, image = capture.read(); # note: ignore retVal
    
    #   faces = cascade.detectMultiScale(image, scaleFactor=1.2, minNeighbors=2, minSize=(100,100),flags=cv.CV_HAAR_DO_CANNY_PRUNING);
    
        # Draw rectangles on image, and then show it
    #   for (x,y,w,h) in faces:
    #       cv2.rectangle(image, (x,y), (x+w,y+h), 255)
        cv2.imshow("Video", image)
    
        i += 1;
    

ソース:関連する質問: OpenCV C++ ビデオ キャプチャが機能しないようです

于 2013-01-04T15:10:52.477 に答える
4

同じエラーが発生し、約 1 時間エラーを検索した後、画像へのパスが不適切に定義されていることがわかりました。それは私の問題を解決しました、それはあなたの問題を解決するかもしれません.

于 2013-09-01T19:12:45.887 に答える
0

私はOpencv2.3.1とPython2.7.2を使用してWindowsで作業しているので、同じ問題が発生しました。Pythonのインストールフォルダーにopencv_ffmpeg.dllとopencv_ffmpeg_64.dllのDLLファイルを貼り付けて解決しました。多分それはUbuntuの同様の解決策であなたを助けるでしょう。

于 2013-01-15T17:15:46.937 に答える
0

カメラが機能していることを確認するために、サニティチェックを行うことは常に良いことです. 私の場合、私のカメラは

raspistill -o test.jpg

于 2021-07-21T09:58:09.177 に答える