opencv运动目标跟踪预测_视频运动目标跟踪,基于opencv , vc++ - 鹰眼的专栏 - CSDN博客...

本文介绍了一个使用OpenCV和VC++进行视频运动目标跟踪的实现方法。通过打开视频文件,利用高斯滤波、背景差分、边缘检测等技术,识别并跟踪感兴趣区域内的运动目标,同时更新背景模型。该程序可以处理摄像头或视频文件输入,显示运动目标的边界框和编号。
摘要由CSDN通过智能技术生成

视频运动目标跟踪,基于opencv , vc++ 收藏

//打开视频文件以及车辆跟踪和识别,按钮消息响应部分

void CTrackandIDDlg::OnStartTrackandID()

{

// TODO: Add your control notification handler code here

int argc=2;

打开文件///

CString FilePathName;

CFileDialog dlg(TRUE);

if(dlg.DoModal()==IDOK)  //

FilePathName=dlg.GetPathName();

IplImage* pFrame = NULL;

IplImage* pFrImg = NULL;

IplImage* pBkImg = NULL;

IplImage* pFrImg1 = NULL;

CvMat* pFrameMat = NULL;

CvMat* pFrMat = NULL;

CvMat* pBkMat = NULL;

CvMat* pFrMat1 = NULL;

CvMemStorage * storage = cvCreateMemStorage(0);//轮廓边缘提取时的参数

CvSeq * contour = 0;//轮廓边缘提取时的参数

int mode = CV_RETR_EXTERNAL;//轮廓边缘提取时的参数

//形态学处理时内核的大小

IplConvKernel* Element = cvCreateStructuringElementEx(13,13,1,1,CV_SHAPE_RECT,NULL);

CvFont font1;//初始化字体格式

int linetype=CV_AA;

cvInitFont(&font1, CV_FONT_HERSHEY_SIMPLEX, 0.5, 0.5, 0, 1, 8);

//用字符串时一定要把using namespace std;写在前面,否则不能用,下面是用于显示的字符串

string msg[10]={"JGD01","JGD02","JGD03","JGD04","JGD05","JGD06","JGD07","JGD08","JGD09","JGD10"};

int No=0;//用于记录显示车辆

bool FindCar=false;

//在视频中画出感兴趣的区域,怎么样才能沿车道画线???????

CvPoint pt1,pt2,pt3,pt4,pt5;

pt1.x=292;//(视频中左下点)

pt1.y=100;

pt2.x=412;//(视频中右上点)

pt2.y=280;

CvRect bndRect=cvRect(0,0,0,0);//用cvBoundingRect画出外接矩形时需要的矩形

int avgX = 0;//The midpoint X position of the rectangle surrounding the moving objects

int avgY = 0;//The midpoint Y position of the rectangle surrounding the moving objects

int avgX1=0;//用来合并相近的车辆

int avgY1=0;

for(int i=0;i<10;i++)

{

TrackBlock[i]=NULL;

if((TrackBlock[i]=(struct AvTrackBlock *) malloc(sizeof(struct AvTrackBlock)))=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值