停止相机捕获EmguCV

时间:2017-10-06 13:16:36

标签: opencv c++-cli emgucv

如何在EmguCV 2.X中停止摄像头捕捉,并确保我的应用程序中没有连接相机。

似乎没有像OpenCV中那样的release()函数。

代码的相关部分:

捕获定义:

Emgu::CV::Capture^ capture; // Creates a capture object

开始按钮单击:

capture = gcnew Emgu::CV::Capture(_CameraIndex); //create a camera capture

如果我在初始化后添加以下内容:

capture.Dispose(); //To stop and call Garbage Collector

然后它给了我以下错误:

Dispose is not a member of Emgu::CV::Capture

2 个答案:

答案 0 :(得分:1)

是的,删除调用析构函数的对象,然后Dispose(),这是安全的。您可以将其更改为if (capture != nullptr) delete capture;

答案 1 :(得分:0)

事实证明,虽然Dispose不是一种方法,但我只能delete该对象,然后重新初始化它

capture = gcnew Emgu::CV::Capture(cameraIndex);
delete capture;
capture = gcnew Emgu::CV::Capture(cameraIndex);

AFAIK这样做并没有什么本质上的危险,但我不是100%