步骤:
- 利用背景消除法找到移动的物体;
- 预处理:进行中值滤波消除椒盐噪声,然后二值化再开操作;
- 寻找轮廓;
- 画出轮廓最小矩形并统计。
#include<opencv2\opencv.hpp>
using namespace cv;
using namespace std;
int main(int arc, char** argv) {
VideoCapture capture;
capture.open("vtest.avi");
namedWindow("input", CV_WINDOW_AUTOSIZE);
namedWindow("motion objects", CV_WINDOW_AUTOSIZE);
Mat frame,mogMask;
//实例化背景消除法模型
Ptr<BackgroundSubtractorMOG2>mog2 = createBackgroundSubtractorMOG2();
//定义结构元素
Mat kernel = getStructuringElement(MORPH_RECT, Size(3, 3));
//定义发现的轮廓
vector<vector<Point>>contours;
//层次
vector<Vec4i>hierarchy;
int count = 0;
//定义字符数组