1

はじめに:

こんにちは、ファイルまたはカメラからビデオ入力を取得しようとするたびに問題が発生します。

私は本にあるチュートリアルに従っています:「openCV ライブラリを使用した OpenCV コンピュータ ビジョンの学習」.カメラ入力またはビデオ ファイル入力のいずれかを使用して動作する例を取得できます。これらの例は 2-2 と 2-9 です。


コード:

  • 例 2-2 (ビデオ入力) に使用するコードは次のとおりです。

    #include "stdafx.h"
    #include "highgui.h"
    #include <cv.h>
    
    
    int main( int argc, char** argv ) {
    cvNamedWindow( "Example2", CV_WINDOW_AUTOSIZE );
    CvCapture* capture = cvCreateFileCapture( "C:\\Users\\$catia video tutorial 3.avi" );
    IplImage* frame;
    
    while(1) {
        frame = cvQueryFrame( capture );
        if( !frame ) break;
        cvShowImage( "Example2", frame );
        char c = cvWaitKey(33);
        if( c == 27 ) break;
    }
    cvReleaseCapture( &capture );
    cvDestroyWindow( "Example2" );
    }
    
  • 例 2-9 (カメラ入力) で使用するコードは次のとおりです。

       #include "stdafx.h"
       #include <highgui.h>
       #include <cv.h>
    
    
        int _tmain(int argc, _TCHAR* argv[])
    {
        CvCapture* capture = cvCreateCameraCapture(-1);
        IplImage* frame;
    
    while(1) {
        frame = cvQueryFrame( capture );
        //if( !frame ) break;
        cvShowImage( "Example2", frame );
        char c = cvWaitKey(33);
    if( c == 27 ) break;
    }
    cvReleaseCapture( &capture );
    cvDestroyWindow( "Example2" );
    return 0;
    }
    

条件:

両方の例について同時に助けを求めているのは、両方の問題は同じだと思うからです! どちらも短い例です。

  • Visual Studio 2010 を搭載した Windows 7 x64 マシンで OpenCV 2.2 を使用しています。

  • すべての Opencv ライブラリとインクルード ファイルをプロジェクト プロパティに正しく追加しました。

  • 私のカメラは他のプログラムで正しく動作します。

  • 画像入力は正常に動作します。そうでないのはビデオです。


出力:

  • 例 2-2 では、「cvCreateFileCapture」関数を呼び出すとすぐに「アクセス違反例外」が発生します。
  • 例 2-9 では、ビデオ デバイスの選択を求めるポップアップ ウィンドウが表示されます。私は明らかに、ラップトップに付属している bisonCam だけを選択します。次に、空のウィンドウを開き、何もしません。
  • 例 2-9 では、カメラの LED がオンになります。

そう...:

誰かが私が欠けているものを知っているなら、あなたのアドバイスに感謝します!! :D

4

1 に答える 1

0

ドル記号 ($) を付けずにファイルに名前を付けてみてください。これが例 2-2 の問題を引き起こしている可能性があります (コード自体は良さそうです)。

于 2012-09-05T05:53:18.837 に答える