ROS:海康威视+opencv运动检测

主要功能:
通过海康威视视频服务器读取视频流,采用opencv对视频流进行处理,
采用红色的方框框出镜头中运动的物体轮廓.
一、下载对应电脑版本的海康威视SDK
海康威视官网
二、配置环境
1.将海康威视提供的库文件安装到/usr/lib和/lib下
这里写图片描述

具体方法

sudo chmod 777 lib/*
sudo cp  lib/* /usr/lib/
sudo cp  lib/* /lib/
cd /usr/lib 
sudo ldconfig
cd /lib/
sudo ldconfig

三、代码
1.motion_detection.cpp

#include <cstdio>  
#include <cstring>  
#include <iostream>  
#include <unistd.h>
#include "HCNetSDK.h"  
#include "public.h" 
#include "LinuxPlayM4.h"
#include <opencv2/core/core.hpp>
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/optflow/motempl.hpp>

#include <string.h>
#include <unistd.h>

#include <ctype.h>
#define USECOLOR 1  
using namespace std;  
using namespace cv; 

//--------------------------------------------  
int iPicNum=1;//Set channel NO.  
LONG nPort=-1;  
HWND hWnd=0;   
const double MHI_DURATION = 0.5;
const double MAX_TIME_DELTA = 0.5;
const double MIN_TIME_DELTA = 0.05;
const int N = 3;

//
const int CONTOUR_MAX_AERA = 16;

// ring image buffer
IplImage **buf = 0;
int last = 0;

// temporary images
IplImage *mhi = 0; // MHI: motion history image

//CvFilter filter = CV_GAUSSIAN_5x5;
CvConnectedComp *cur_comp, min_comp;
CvConnectedComp comp;
CvMemStorage *storage;
CvPoint pt[4];

//  参数:
//  img – 输入视频帧
//  dst – 检测结果
void  update_mhi( IplImage* img, IplImage* dst, int diff_threshold )
{
    double timestamp = clock()/100.; // get current time in seconds
    CvSiz
  • 2
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值