opencv学习笔记四十四:移动对象统计

步骤:

  1. 利用背景消除法找到移动的物体;
  2. 预处理:进行中值滤波消除椒盐噪声,然后二值化再开操作;
  3. 寻找轮廓;
  4. 画出轮廓最小矩形并统计。
#include
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;
	//实例化背景消除法模型
	Ptrmog2 = createBackgroundSubtractorMOG2();
	//定义结构元素
	Mat kernel = getStructuringElement(MORPH_RECT, Size(3, 3));
	//定义发现的轮廓
	vector>contours;
	//层次
	vectorhierarchy;
	int count = 0;
	//定义字符数组
	char numText[2];

	while (capture.read(frame)) {
		imshow("input", frame);
		//应用混合高斯模型去除背景
		mog2->apply(frame, mogMask);
		//中值滤波
		medianBlur(mogMask, mogMask, 3);
		//得到的结果为灰度图像,对其进行二值化
		threshold(mogMask, mogMask, 100, 255, THRESH_BINARY);
		//开操作
		morphologyE

你可能感兴趣的:(opencv)