1. 程式人生 > >OpenCV視訊分析與物件跟蹤C++(四)視訊中移動物件統計

OpenCV視訊分析與物件跟蹤C++(四)視訊中移動物件統計

#include <opencv2/opencv.hpp>
#include <opencv2/xfeatures2d.hpp>
#include<opencv2/face.hpp>
#include<iostream>
#include<math.h>
#include <string> 
#include<fstream> 

using namespace cv::face;
using namespace cv;
using namespace std;
using namespace cv::xfeatures2d;

int
main() { VideoCapture capture; capture.open("C:/Users/Administrator/Desktop/pic/3.avi"); Ptr<BackgroundSubtractor>pMOG2 = createBackgroundSubtractorMOG2(); Mat kernel = getStructuringElement(MORPH_RECT, Size(3, 3)); vector<vector<Point>>contours; vector<Vec4i>
hireachy; Mat frame, gray, mogmask; while (capture.read(frame)) { imshow("src", frame); pMOG2->apply(frame, mogmask); threshold(mogmask, mogmask, 100, 255, THRESH_BINARY);//二值化 morphologyEx(mogmask, mogmask, MORPH_OPEN, kernel); findContours(mogmask, contours, hireachy, RETR_EXTERNAL, CHAIN_APPROX_SIMPLE, Point(0
, 0)); cvtColor(mogmask, mogmask, COLOR_GRAY2BGR); int count = 0; char numText[8]; for (size_t t = 0; t < contours.size(); t++) { double area = contourArea(contours[t]);//獲取輪廓的面積 if (area < 100) continue;//忽略面積小的 Rect selection = boundingRect(contours[t]); if (selection.width < 10 || selection.height < 10) contours; count++; rectangle(mogmask, selection, Scalar(0, 0, 255), 2); sprintf_s(numText, "%d", count); putText(mogmask, numText, Point(selection.x, selection.y), CV_FONT_NORMAL, FONT_HERSHEY_PLAIN, Scalar(255, 0, 0)); } cout << "nini"; imshow("mogmask", mogmask); } capture.release(); waitKey(0); }

結果:
這裡寫圖片描述

相關推薦

OpenCV視訊分析物件跟蹤C++視訊移動物件統計

#include <opencv2/opencv.hpp> #include <opencv2/xfeatures2d.hpp> #include<opencv2/face.hpp> #include<iostream&

C/C++ 演算法分析設計:貪心搬運工

題目描述 搬運工的工作非常辛苦,不僅是因為要費體力,而且幹活要有技巧,不能總是用蠻力。假設你是一名搬運工,給定一個最大載重量為M公斤的卡車和N種食品,有食鹽,白糖,大米等。已知第 i 種食品的擁有Wi 公斤,其商品價值為Vi元/公斤,程式設計確定一個裝貨方案,使得裝入卡車中

C/C++ 演算法分析設計:貪心等價交換

題目描述 黑龍江的五常大米全國聞名,每年到了秋天,農民們把自己家的大米到集市上去買,但由於五常地區還是一個比較落後的地方,還實行物物交換,即農民用大米換白麵,可以用來蒸饅頭啊!每個集市上大米換白麵的比例並不相等,如何能用最少的大米換到最多的白麵呢?(單位是斤) 輸入 輸

系統分析設計學習筆記

學習 掌握 應該 溝通 基本 最終 表示 對象 毫無 為什麽要學習這門課程?   “擁有一把錘子未必能成為建築師”。 這門課程學習的是面向對象分析和設計的核心技能的重要工具。對於使用面向對象技術和語言來,創建設計良好、健壯且可維護的軟件來說,這門課程所

Netty深入分析Dubbo實戰解析——網路程式設計模型介紹

Linux網路程式設計模型介紹 Linux核心將所有外部裝置都看作一個檔案來操作,對一個檔案的讀寫操作會呼叫核心提供的系統命令,返回一個file descriptor(fd,檔案描述符)。而對一個socket的讀寫也會有相應的描述符。描述符就是一個數字,它指向核心中的一個結構體(檔案路徑

Python資料分析挖掘學習筆記2使用pandas進行資料匯入

一、匯入pandas模組:   import pandas as pda 二、匯入CSV格式資料: #資料匯入 i=pda.read_csv("E:/hexun.csv")     可對匯入的資料進行統計以及按列排序: #統計 i.describe() #排序 i

Python資料分析挖掘學習筆記4淘寶商品資料探索清洗實戰

一、相關理論: 資料探索的核心: (1)資料質量分析(跟資料清洗密切聯絡) (2)資料特徵分析(分佈、對比、週期性、相關性、常見統計量等) 資料清洗的步驟: (1)缺失值處理(通過describe與len直接發現、通過0資料發現) (2)異常值處理(通過散點圖發現

Python資料分析挖掘學習筆記5資料規範化資料離散化實戰

一、相關理論: 1、資料規範化的常見方法: (1)離差標準化(最小-最大標準化)--消除量綱(單位)影響以及變異大小因素的影響。(最小-最大標準化)                         x1=(x-min)/(max-min) (2)標準差標準化--消除單

python資料分析挖掘學習筆記6-電商網站資料分析及商品自動推薦實戰關聯規則演算法

這一節主要涉及到的資料探勘演算法是關聯規則及Apriori演算法。 由此展開電商網站資料分析模型的構建和電商網站商品自動推薦的實現,並擴充套件到協同過濾演算法。 關聯規則最有名的故事就是啤酒與尿布的故事,非常有效地說明了關聯規則在知識發現和資料探勘中起的作用和意義。 其中有

Qt C++QML混合程式設計2- QML使用C++的列舉、結構體、列表型別的函式

C++中返回函式返回的列舉型別、結構體型別、列表型別的函式是不能直接作為QML使用的。下面介紹C++中使用這些型別作為返回值的函式使用。 1. 使用列舉型別 C++的列舉型別如果要在QML中使用,需要在使用Q_ENUMS去修飾這個列舉型別。

Qt C++QML混合程式設計1- QML使用C++的類和函式

本章主要介紹一下在QML中使用C++的類的兩種方法 1.設定QML的上下文屬性 為QML的節點設定上線屬性,在QML檔案中可以之間使用這個屬性的函式。 QQuickView view; view.rootContext()->setCo

python資料分析挖掘學習筆記3_小說文字資料探勘part1

這一節主要是對小說文字資料的挖掘專案。 文字挖掘的一個重要的應用是進行站點的個性化推薦。將使用者感興趣的資訊推送給對應的使用者,可以更好地發揮該資訊的價值。比如,我們常常會在瀏覽網頁的時候看到相關的廣告是我們感興趣的,新聞推送的是我們感興趣的文章,閱讀小說推薦的是我們想看的

effective c++

ret 內存不足 賦值 指向 enc 工作 cti sig 操作符 條款10:令operator=返回一個reference to *this 為了實現“連鎖賦值”,賦值操作符必須返回一個reference指向操作符的左側實參,這是你為classes實現賦值操作符時應該遵循

Android 基於Netty的訊息推送方案之物件的傳遞

在上一篇文章中《Android 基於Netty的訊息推送方案之字串的接收和傳送(三)》我們介紹了Netty的字串傳遞,我們知道了Netty的訊息傳遞都是基於流,通過ChannelBuffer傳遞的,那麼自然,Object也需要轉換成ChannelBuffer來傳遞。好在Netty本身已經給我們寫好了

基於ASP.NET的高校輔導員工作管理系統的設計實現--論文隨筆

一、基本資訊 標題:基於ASP.NET的高校輔導員工作管理系統的設計與實現 時間:2017 出版源:南通理工學院 關鍵詞:ASP.NET; SQL Server; 高校; 管理系統; 輔導員; 二、研究背景 問題定義:高校學生數量越來越多,學生資訊也越來越龐大,在輔導員的日常工作中,所使用的傳統的電子表

資料分析系列教程之numpy

前面幾節講了numpy中資料型別建立,選取,修改,今天是numpy的最後一節,繼續講一些更常見的一些計算方法 1、求和函式 求和函式,用sum(),當然下圖中我是直接選取哪些資料,就對哪些資料求和 sum函式裡面有引數,當然下面的函式同樣也包含該引數axis,axis代表軸

Java程式設計師從笨鳥到菜鳥之細談struts2struts2action執行流程和原始碼分析

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!                首先我們看一下struts官方給我們提供的struts執行流程從上面流程圖我們可以看出struts執行的流程大體分一下階段:1. 初始的請求通過一條標準的過濾器

vue json-server 查詢

接上幾篇文章 https://blog.csdn.net/qq_39109182/article/details/85160889  https://blog.csdn.net/qq_39109182/article/details/85160481 https://blog.

多程序多執行緒--NPTL(轉)

Native POSIX Thread Library(NPTL)是一個能夠使使用POSIX Threads編寫的程式在Linux核心上更有效地執行的軟體。測試表明,NPTL能夠成功地在IA-32平臺上在兩秒種內生成100,000個執行緒;相應的沒有NPTL的核心將耗費15分鐘左右。歷史在Linux核心2.6

執行緒多執行緒——執行緒排程

四、執行緒排程   執行緒排程管理器負責執行緒排隊和CPU線上程間的分配,並按執行緒排程演算法進行排程。當執行緒排程管理器選中某個執行緒時,該執行緒獲得 CPU資源進人執行狀態。   執行緒排程是搶佔式排程,即如果在當前執行緒執行過程中個更高優先順序的執行緒