0

我已经运行了这个示例代码

#include "cv.h"
#include "highgui.h"

using namespace cv;

int main(int, char**)
{
    VideoCapture cap(0);
    if(!cap.isOpened()) return -1;

    Mat frame, edges;
    namedWindow("edges",1);
    for(;;)
    {
        cap >> frame;
        cvtColor(frame, edges, CV_BGR2GRAY);
        GaussianBlur(edges, edges, Size(7,7), 1.5, 1.5);
        Canny(edges, edges, 0, 30, 3);
        imshow("edges", edges);
        if(waitKey(30) >= 0) break;
    }
    return 0;
}

它工作正常,但在应用程序关闭后,相机仍然处于活动状态。我知道这一点,因为闪光灯 LED 一直亮着,直到我终止 HPMediaSmartWebcam.exe 进程。

使用完后如何关闭相机VideoCapture

4

1 回答 1

0

根据文档...这里相机将在类析构函数中自动取消初始化...析构函数调用虚拟函数cv::VideoCapture.release()...运行相机固定数量的帧,然后查看网络摄像头的 LED 是否亮起关不关。。

int frames = 0;

while(frames!=1000)
{
  //do frame capture from webcam and image processing...
  ++frames;
}
于 2012-12-14T02:27:58.083 回答