利用帧差法检测区域内是否有人出现,如果出现行人就报警。
不同的区域位置需要调参,根据摄像头内行人大小调节一下参数
const double RECT_HW_RATIO = 1.5; // 人体长宽比阈值
const double RECT_AREA_RATIO = 0.001; // 人体占整个图像最小比例阈值
const double RECT_AREA_RATIO2 = 0.003; // 人体占整体图像最大比例阈值
完整代码如下:
#include <opencv2\imgproc\imgproc.hpp>
#include <windows.h>
#include <opencv2/opencv.hpp>
#include <cmath>
#include <iostream>
//#include "DetectPackage.h"
#include <cmath>
using namespace std;
using namespace cv;
int main() {
Mat Image;
//VideoCapture cap("C:\\Users\\Administrator\\Desktop\\image\\5.mp4");
Rect cut;
CvPoint P1, P2;
P1.x = 1500;
P1.y = 800;
P2.x = 600;
P2.y = 100; //画一个限制框,只在框内检测
VideoCapture cap("rtsp://admin:[email protected]/Streaming/Channels/1");//摄像头连接