最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用OpenCV實(shí)現(xiàn)檢測(cè)和追蹤車輛

 更新時(shí)間:2018年01月09日 10:50:19   作者:炒雞嗨客協(xié)管徐  
這篇文章主要為大家詳細(xì)介紹了使用OpenCV實(shí)現(xiàn)檢測(cè)和追蹤車輛,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了OpenCV實(shí)現(xiàn)檢測(cè)和追蹤車輛的具體代碼,供大家參考,具體內(nèi)容如下

完整源碼GitHub

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

由于要對(duì)背景建模,這個(gè)方法要求背景是靜止的
另外不同車輛白色區(qū)域不能連通,否則會(huì)認(rèn)為是同一物體

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); 
    } 
  } 
} 

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用remalloc的注意事項(xiàng)說(shuō)明(必看篇)

    使用remalloc的注意事項(xiàng)說(shuō)明(必看篇)

    下面小編就為大家?guī)?lái)一篇使用remalloc的注意事項(xiàng)說(shuō)明(必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03
  • 深入分析Linux下如何對(duì)C語(yǔ)言進(jìn)行編程

    深入分析Linux下如何對(duì)C語(yǔ)言進(jìn)行編程

    本篇文章介紹了,如何在Linux下對(duì)C語(yǔ)言進(jìn)行編程的詳細(xì)概述。需要的朋友參考下
    2013-05-05
  • Objective-C不帶加減號(hào)的方法實(shí)例

    Objective-C不帶加減號(hào)的方法實(shí)例

    顯而易見(jiàn)的事實(shí)是,Objective-C 中,+ 表示類方法,- 表示實(shí)例方法,這篇文章主要給大家介紹了關(guān)于Objective-C不帶加減號(hào)的相關(guān)資料,需要的朋友可以參考下
    2021-06-06
  • C++ 11 nullptr 空指針示例詳解

    C++ 11 nullptr 空指針示例詳解

    C++11標(biāo)準(zhǔn)引入了nullptr來(lái)替代傳統(tǒng)的NULL,解決了NULL可能導(dǎo)致的類型混淆問(wèn)題,nullptr是nullptr_t類型的實(shí)例,專用于初始化空類型指針,與整型不會(huì)發(fā)生隱式轉(zhuǎn)換,從而使代碼更健壯,它可以被隱式轉(zhuǎn)換為任意類型的指針,提高了代碼的安全性和可讀性
    2024-10-10
  • C++使用join拼接字符串的技巧

    C++使用join拼接字符串的技巧

    在C++中,經(jīng)常需要將多個(gè)字符串拼接成一個(gè)大字符串,這個(gè)過(guò)程很容易出錯(cuò),但有一些技巧可以幫助我們輕松地實(shí)現(xiàn)這個(gè)目標(biāo),五個(gè)C++中join字符串的技巧:使用stringstream、使用字符串迭代器、使用字符串的加法運(yùn)算符、使用std::accumulate函數(shù)和使用boost庫(kù)的join方法
    2023-11-11
  • C++超詳細(xì)講解函數(shù)對(duì)象

    C++超詳細(xì)講解函數(shù)對(duì)象

    在c++中,我們把所有能當(dāng)作函數(shù)使用的對(duì)象統(tǒng)稱為函數(shù)對(duì)象。它是實(shí)現(xiàn)operator()的任何類型,此運(yùn)算符被稱為調(diào)用運(yùn)算符,當(dāng)調(diào)用此操 作符時(shí),其表現(xiàn)形式如同普通函數(shù)調(diào)用一般,因此取名叫函數(shù)對(duì)象
    2022-06-06
  • C語(yǔ)言實(shí)踐設(shè)計(jì)開(kāi)發(fā)飛機(jī)游戲

    C語(yǔ)言實(shí)踐設(shè)計(jì)開(kāi)發(fā)飛機(jī)游戲

    飛機(jī)大戰(zhàn)想必是很多人童年時(shí)期的經(jīng)典游戲,我們依舊能記得抱個(gè)老人機(jī)娛樂(lè)的場(chǎng)景,下面這篇文章主要給大家介紹了關(guān)于如何利用C語(yǔ)言寫(xiě)一個(gè)簡(jiǎn)單的飛機(jī)大戰(zhàn)小游戲的相關(guān)資料,需要的朋友可以參考下
    2022-02-02
  • C語(yǔ)言代碼實(shí)現(xiàn)簡(jiǎn)單三子棋游戲

    C語(yǔ)言代碼實(shí)現(xiàn)簡(jiǎn)單三子棋游戲

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言代碼實(shí)現(xiàn)簡(jiǎn)單三子棋游戲,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • C/C++時(shí)間庫(kù)chrono的使用總結(jié)

    C/C++時(shí)間庫(kù)chrono的使用總結(jié)

    std::chrono是C++標(biāo)準(zhǔn)庫(kù)中的一個(gè)組件,用于表示和處理時(shí)間,其功能就像是心理學(xué)中的感知系統(tǒng),它可以為我們捕捉、量化并操作抽象的時(shí)間概念,這就如同我們的大腦可以理解和感知周圍環(huán)境的時(shí)間流逝一樣,這種感知和理解能力是人類進(jìn)行日?;顒?dòng)所必需的,
    2023-12-12
  • 高效實(shí)現(xiàn)整型數(shù)字轉(zhuǎn)字符串int2str的方法

    高效實(shí)現(xiàn)整型數(shù)字轉(zhuǎn)字符串int2str的方法

    下面小編就為大家?guī)?lái)一篇高效實(shí)現(xiàn)整型數(shù)字轉(zhuǎn)字符串int2str的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03

最新評(píng)論

成安县| 永州市| 二手房| 资溪县| 桃园市| 荔浦县| 交口县| 合山市| 普定县| 赫章县| 资溪县| 延庆县| 长宁县| 徐州市| 敖汉旗| 绥江县| 益阳市| 桂平市| 恩施市| 金溪县| 精河县| 易门县| 兴义市| 新安县| 桑植县| 阳泉市| 成安县| 清流县| 大连市| 堆龙德庆县| 内丘县| 星子县| 外汇| 罗甸县| 博兴县| 清水河县| 塔城市| 江油市| 荆门市| 通化市| 屯门区|