使用Opencv c ++中的实时捕获图像将实时两个图像与预定义图像进行实时比较

时间:2015-09-08 04:55:29

标签: c++ opencv

我正在做一个自动织物疵点检测项目。在此我使用[FFT] [1](快速傅立叶变换)开发了算法,并且它在我的Ubuntu 14.04 opencv c++中正常工作。但现在我想把它发展到实时,我必须每2秒捕获一次图像,并且必须用我开发的算法处理该图像。我需要有关如何使用opencv c++中的网络摄像头捕获图像的想法,并处理正在捕获的相同图像。如果有人知道,请帮助我。提前谢谢。

1 个答案:

答案 0 :(得分:0)

您可以按照OpenCV提供的指导 - 他们提供了足够的examples,例如以下示例代码。以下代码由OpenCV Dev团队提供,作为样本。

#include "opencv2/opencv.hpp"

using namespace cv;

int main(int, char**)
{
    VideoCapture cap(0); // open the default camera
    if(!cap.isOpened())  // check if we succeeded
        return -1;
   Mat edges;
   namedWindow("edges",1);
   for(;;)
   {
       Mat frame;
       cap >> frame; // get a new frame from camera
       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;
   }
   // the camera will be deinitialized automatically in VideoCapture       destructor
    return 0;
}