3

Linux Mint (バージョンは不明) を使用しており、Logitech Orbit AF Web カメラを使用しています。次のコードを試してみましたが、「エラー: キャプチャが null です!」というメッセージしか表示されませんでした。助けてください!!!!!

#include<cv.h>
#include<highgui.hpp>
#include<iostream>

using namespace std;

int main() {
    //Data Structure to store cam.
    CvCapture* cap=cvCaptureFromCAM(0);
    //Image variable to store frame
    IplImage* frame;
    //Window to show livefeed
    cvNamedWindow("LiveFeed",CV_WINDOW_AUTOSIZE);
    if(!cap)
    {
        cout << "ERROR: Capture is null!\n";
    }
    while(1)
    {
        //Load the next frame
        frame=cvQueryFrame(cap);
        //If frame is not loaded break from the loop
        if(!frame)
            break;
        //Show the present frame
        cvShowImage("LiveFeed",frame);
        //Escape Sequence
        char c=cvWaitKey(33);
        //If the key pressed by user is Esc(ASCII is 27) then break out of the loop
        if(c==27)
           break;
    }
    //CleanUp
    cvReleaseCapture(&cap);
    cvDestroyAllWindows(); 

}

4

2 に答える 2

2

この呼び出しが戻ったときNULL

CvCapture* cap = cvCaptureFromCAM(0);
if (!cap)
{
    // print error and exit
    cout << "ERROR: Capture is null!\n";
    return -1;
}

これは、インデックスでデバイスが見つからなかったことを意味します0。代わりに合格CV_CAP_ANYして、OpenCVに有効なインデックス番号を選択させてください。

それでも問題が解決しない場合は、お使いのカメラがOpenCVでサポートされていない可能性があります。このリストでそれを見つけてみてください。

于 2012-05-09T21:57:17.703 に答える
0

opencv の最新バージョン (2.4.9) が機能しないことに気付きました。2.3 をインストールしたところ、魔法のように動作するようになりました。

于 2012-10-02T00:03:22.970 に答える