Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ OpenCV C++;近距离撞车_C++_Opencv_Crash - Fatal编程技术网

C++ OpenCV C++;近距离撞车

C++ OpenCV C++;近距离撞车,c++,opencv,crash,C++,Opencv,Crash,我正在使用OpenCVBackgroundSubtractorMOG2开发一个简单的背景减法程序。代码: int main() { VideoCapture cap(0); // open the default camera if(!cap.isOpened()) // check if we succeeded return -1; Mat frame,foreground,image,edges; BackgroundSubtractorMOG2 mog;

我正在使用OpenCV
BackgroundSubtractorMOG2
开发一个简单的背景减法程序。代码:

int main()
{
  VideoCapture cap(0); // open the default camera
  if(!cap.isOpened())  // check if we succeeded
      return -1;

  Mat frame,foreground,image,edges;
  BackgroundSubtractorMOG2 mog;
  namedWindow("Capture", CV_WINDOW_AUTOSIZE);
  namedWindow("Contours", CV_WINDOW_AUTOSIZE);

  while(1)
  {
    cap >> frame; // get a new frame from camera
    if( frame.empty() )
        break;
    image=frame.clone();
    mog(frame,foreground,-1);

    threshold(foreground,foreground,1,250,THRESH_BINARY);
    medianBlur(foreground,foreground,9);
    erode(foreground,foreground,Mat());
    dilate(foreground,foreground,Mat());

    imshow( "Capture",image );
    imshow("Contours",foreground);

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

}
程序工作,但退出后,将出现如下错误:{prog_name}.exe中0xfeeefeee处的
未处理异常:0xC0000005:访问冲突读取位置0xfeeefeee.
,它将指向第568行的
crtexe.c

if (has_cctor == 0)
  _cexit();
知道是什么导致了这个问题吗?提前谢谢

PS:目前使用OpenCV2.3.4和VS C++ 2010 Exp.在WindowsXP.

PSS:AFAIK每个类/指针(包括摄像头)将在退出时取消初始化/销毁。如果我错了,请纠正我

更新(1):即使在更新之后,仍会收到错误

更新(2):尝试对每一行进行调试,但仍然一无所获。已尝试使用
delete
函数释放资源,但找不到任何指针将其与
delete
一起使用

更新(3):似乎我用
OpenCV C++
制作的每个视频处理程序在退出时都会崩溃,即使是我从书本/互联网上复制粘贴的那个。用
返回-1
更改了
中断
,仍然崩溃


更新(4):我在另一台电脑上试用了我的程序(Ms VS 2010 Pro,Windows Vista 64b),你猜怎么着,没有崩溃。我的计算机设置肯定有问题…

尝试使用调试器。您使用什么IDE?MS Visual Studio 2010 Express。已经尝试过调试,但没有运气,只是在linux上检查了您的代码,它工作正常(最终没有崩溃)。它在哪一行坠毁?还是跑步之后?您是否尝试将
返回0
main
函数的末尾?是的,我已经在末尾添加了
return 0
,但仍然得到了错误。我也检查了每一行可能的错误,但仍然没有得到任何结果。我的直觉是Visual Studio中的调试构建与此有关。问题可能出在您的一个类析构函数中。试图释放资源两次或类似的事情。