从相机读取时C ++ OpenCV 0xC0000005错误

时间:2013-05-08 20:51:38

标签: c++ opencv webcam access-violation

如上所述,当我尝试从相机获取帧时,我得到一个0xC0000005读取访问冲突错误,该错误是由VSFilter.dll实现的。我尝试过在线和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;
}

在输出中有两个错误(第一次机会执行和未处理的执行,对意大利人抱歉):

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&amp; TextSub过滤器)有关?

我正在使用OpenCV 2.4.5和VisulaStudio 2012。


解决

我已经下载了VSFilter.dll并替换了Windows / system32 /中的原始版本,现在一切正常!

1 个答案:

答案 0 :(得分:1)

任何机会,你最终进入了地狱&#34; ?

喜欢:

  1. 将发布代码与调试dll相关联(或反过来)
  2. 将32位代码与64位dll相关联(或反过来)
  3. 将vc9代码与vc10 dll&#39; s联系起来(我希望你现在得到这个模式)