0

前述のように、カメラからフレームを取得しようとすると、VSFilter.dll に関連付けられた 0xC0000005 読み取りアクセス違反エラーが発生します。オンラインおよび OpenCV ドキュメントにある別のサンプル コードを試しましたが、それでもエラーが発生します。たとえば、これは私が今使っているコードです:

#include <opencv/cv.h>
#include <opencv/highgui.h>

using namespace cv;

int main(int, char**)
{
    VideoCapture cap(0);

    if(!cap.isOpened()) return -1;

    Mat frame;

    namedWindow("Camera",1);

    while(1)
    {
        cap >> frame;
                
        imshow("Camera", frame);

        if(waitKey(30) >= 0) break;
    }

    return 0;
}

出力には、次の 2 つのエラーがあります (最初の例外と未処理の例外、イタリア語で申し訳ありません)。

Eccezione first-chance in 0x000007FEEB115791 (VSFilter.dll) in OpenCV.exe: 0xC0000005: violazione di accesso durante la scrittura del percorso 0x000000000468E000.
Eccezione non gestita in 0x000007FEEB115791 (VSFilter.dll) in OpenCV.exe: 0xC0000005: violazione di accesso durante la scrittura del percorso 0x000000000468E000.

したがって、コードは非常に単純であり、問​​題にはならないはずです。なぜエラーが VSFilter.dll (DirectShow/VirtualDub/Avisynth の VobSub & TextSub フィルター) に関連しているのか疑問に思っています。

OpenCV 2.4.5 と VisulaStudio 2012 を使用しています。


解決済み

VSFilter.dll をダウンロードし、Windows/system32/ にある元のファイルを置き換えました。これですべてが機能するようになりました。

4

1 に答える 1