亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用OpenCV實現檢測和追蹤車輛

發布時間:2020-08-29 02:50:40 來源:腳本之家 閱讀:252 作者:炒雞嗨客協管徐 欄目:編程語言

本文實例為大家分享了OpenCV實現檢測和追蹤車輛的具體代碼,供大家參考,具體內容如下

使用OpenCV實現檢測和追蹤車輛

完整源碼GitHub

  • 使用高斯混合模型(BackgroundSubtractorMOG2)對背景建模,提取出前景
  • 使用中值濾波去掉椒鹽噪聲,再閉運算和開運算填充空洞
  • 使用cvBlob庫追蹤車輛,我稍微修改了cvBlob源碼來通過編譯

由于要對背景建模,這個方法要求背景是靜止的
另外不同車輛白色區域不能連通,否則會認為是同一物體

void processVideo(char* videoFilename) 
{ 
  Mat frame; // current frame 
  Mat fgMaskMOG2; // fg mask fg mask generated by MOG2 method 
  Mat bgImg; // background 
  Ptr<BackgroundSubtractorMOG2> pMOG2 = createBackgroundSubtractorMOG2(200, 36.0, false); // MOG2 Background subtractor 
 
  while (true) 
  { 
    VideoCapture capture(videoFilename); 
    if (!capture.isOpened()) 
    { 
      cerr << "Unable to open video file: " << videoFilename << endl; 
      return; 
    } 
 
    int width = (int)capture.get(CV_CAP_PROP_FRAME_WIDTH); 
    int height = (int)capture.get(CV_CAP_PROP_FRAME_HEIGHT); 
 
    unique_ptr<IplImage, void(*)(IplImage*)> labelImg(cvCreateImage(cvSize(width, height), IPL_DEPTH_LABEL, 1),  
      [](IplImage* p){ cvReleaseImage(&p); }); 
    CvBlobs blobs; 
    CvTracks tracks; 
 
    while (true) 
    { 
      // read input data. ESC or 'q' for quitting 
      int key = waitKey(1); 
      if (key == 'q' || key == 27) 
        return; 
      if (!capture.read(frame)) 
        break; 
 
      // update background 
      pMOG2->apply(frame, fgMaskMOG2); 
      pMOG2->getBackgroundImage(bgImg); 
      imshow("BG", bgImg); 
      imshow("Original mask", fgMaskMOG2); 
 
      // post process 
      medianBlur(fgMaskMOG2, fgMaskMOG2, 5); 
      imshow("medianBlur", fgMaskMOG2); 
      morphologyEx(fgMaskMOG2, fgMaskMOG2, MORPH_CLOSE, getStructuringElement(MORPH_RECT, Size(5, 5))); // fill black holes 
      morphologyEx(fgMaskMOG2, fgMaskMOG2, MORPH_OPEN, getStructuringElement(MORPH_RECT, Size(5, 5))); // fill white holes 
      imshow("morphologyEx", fgMaskMOG2); 
 
      // track 
      cvLabel(&IplImage(fgMaskMOG2), labelImg.get(), blobs); 
      cvFilterByArea(blobs, 64, 10000); 
      cvUpdateTracks(blobs, tracks, 10, 90, 30); 
      cvRenderTracks(tracks, &IplImage(frame), &IplImage(frame)); 
 
      // show 
      imshow("Frame", frame); 
 
      key = waitKey(30); 
    } 
  } 
} 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

镇江市| 揭阳市| 菏泽市| 凤庆县| 茶陵县| 岑溪市| 卢湾区| 介休市| 乐都县| 定结县| 甘德县| 赣榆县| 石阡县| 石家庄市| 天峨县| 平乡县| 汝城县| 方山县| 方城县| 宜宾市| 罗城| 保定市| 洮南市| 西宁市| 太保市| 莎车县| 汪清县| SHOW| 阜康市| 离岛区| 中西区| 喜德县| 鲁山县| 濉溪县| 宁城县| 靖远县| 墨脱县| 沛县| 吉木萨尔县| 广水市| 神池县|