0

Qt で IplImage から QImages に変換するルーチンに遭遇しました。試してみたところ、完璧に動作しました。その後、Iplframes を使用してラベルにビデオを表示しようとしましたが、これも機能しましたが、今はライブ ビデオを表示しようとしています。私のウェブカメラと私は、何も表示されないため、何らかのトラブルに遭遇しています.Opencv 2.3、Ubuntu Linux C ++

CvCapture* capture = cvCreateFileCapture( argv[1] );
//CvCapture* capture = cvCaptureFromCAM( 0 );
while(1) { 

    frame = cvQueryFrame( capture );
    cvWaitKey(33);
    if( !frame ) break;        
    cvCvtColor(frame,frame,CV_BGR2RGB); 
    myImage = QImage((unsigned char *)frame->imageDataOrigin,frame->width,frame->height,QImage::Format_RGB888);
    myLabel.setPixmap(QPixmap::fromImage(myImage));
    myLabel.show();
    //sleep(1);
    Sleeper::msleep(33);
}

そこには、aviビデオからcapturefromcamまたはcapturefromaviの2つのオプションがあり、変換されたフレームを完全に変換して表示しますが、Webカメラのキャプチャされたフレームに対して同じことを試しても何も表示されず、エラーやそのようなものも表示されません、 何か案が?

4

1 に答える 1

0

見ると、cvCaptureFromCAM()index でデバイスが見つかりませんでした0。しかし、あなたは防御的にコーディングしていないので、これを知りません: デバイスへのアクセスに失敗したときにcvCaptureFromCAM()戻ります:NULL

CvCapture* capture = cvCaptureFromCAM( 0 );
if (!capture)
{
    // print error
    // quit application
}

CV_CAP_ANY他のインデックス 1、2、3を渡すか試してみてください。いずれも機能しない場合は、互換性リストを確認して、カメラが OpenCV でサポートされていることを確認することをお勧めします。

同じ注意を払う必要がありますcvQueryFrame()

frame = cvQueryFrame( capture );
if (!frame)
{
    // print error
    // quit application
}
于 2012-05-17T12:52:29.763 に答える