2

opencvを使用してPythonで簡単な顔検出をコーディングしようとしています。残念ながら、私のopencvはウェブカメラの検出を拒否しています。ドキュメントが非常に限られているため、内部でどのように機能するかはわかりませんが、CaptureFromCAM(-1) は何らかのオブジェクトを返しますが、QueryFrame は何も返しません。たとえばチーズで 2 台のカメラの 1 つを使用しようとすると、問題なくビデオが得られます。

    capture = cv.CaptureFromCAM(-1)
    faceCascade = cv.Load("haarcascade_frontalface_alt.xml")
    while (cv.WaitKey(15)==-1):
        img = cv.QueryFrame(capture)
        if img != None: 
          image = DetectFace(img, faceCascade)
          cv.ShowImage("face detection test", image)

    cv.ReleaseCapture(capture)

何か案は?

4

1 に答える 1

2

わかりました、私はそれを理解しました。基本的に、私のopenvcはv4l(Linux用のビデオ)をサポートしてコンパイルされました。

この問題を解決するには、まず、カメラが v4l を使用する他のアプリケーションで動作していることを確認する必要があります。その場合は、v4l サポートで openvc を再コンパイルしてみてください。gentoo (Portage を使用) の場合は非常に簡単です。

    sudo su
    USE="v4l v4l2" emerge -av opencv

他のパッケージ マネージャーの場合は、何かを把握するか、USE_V4L=ON でソースからコンパイルします。

于 2012-10-04T14:04:50.077 に答える