資源簡介
opencv 獲取道路上車流量,實現(xiàn)上下行
代碼片段和文件信息
#include?
#include?
#include?
#include?
#include?
#include?
#include?“opencv2/objdetect/objdetect.hpp“
#include?“opencv2/highgui/highgui.hpp“
#include?“opencv2/imgproc/imgproc.hpp“
#include“tacker.h“
#define?MODE??1??//1-video?2-camera
using?namespace?std;
using?namespace?cv;
FILE?*fp;
CvCapture*?pCapture?=?NULL;
int??g_slider_position?=?0;
bool?tracking=false;
bool?MouseDown=false;
//CvPoint?pt1pt2;
int?numcounte?=?-60;
CvPoint?pt1pt2;
CvPoint?pt_1pt_2;//圍入的點
void?Start()?;
//void?TrackBar(int?pos)
//{
// cvSetCaptureProperty(pCaptureCV_CAP_PROP_POS_frameSpos);?//設(shè)置要讀取的幀
//}
void?on_mouse(int?event?int?xint?yint?flagsvoid*?param)?;
double?TimeBegin;
double?TimeEnd;
double?VSpeed;
int?main()
{
Start();
return?0;
}
void?Start()?
{
int?key;
//IplImage*tempOut=NULL;
IplImage*?XSobe?=?NULL;
IplImage*?YSobe?=?NULL;
IplImage*?Laplace?=?NULL;
IplImage*?pframe?=?NULL;
IplImage*?pFrImg?=?NULL;
IplImage*?pBkImg?=?NULL;
CvMat*?pframeMat?=?NULL;
CvMat*?pFrMat?=?NULL;
CvMat*?pBkMat?=?NULL;
CvMemStorage?*?storage?=?cvCreateMemStorage(0);//輪廓邊緣提取時的參數(shù)
CvSeq?*?contour?=?0;//輪廓邊緣提取時的參數(shù)
int?mode?=?CV_RETR_EXTERNAL;//輪廓邊緣提取時的參數(shù)
int?linetype=CV_AA;
//形態(tài)學(xué)處纴E
IplConvKernel*?Element?=?cvCreateStructuringElementEx(31311/*CV_SHAPE_CROSS*/CV_SHAPE_RECT/*CV_SHAPE_ELLIPSE*/NULL);
CvFont?font1;//初始化字體格式
cvInitFont(&font1?CV_FONT_HERSHEY_SIMPLEX?1?0.5?0?28);
int?No=0;//用于記錄顯示車輛
int?NoBig=0;
int?NoSmall=0;
int?No_1=0;//用于記錄顯示車輛
int?NoBig_1=0;
int?NoSmall_1=0;
bool?FindCar=false;
bool?FindCarS=false;
bool?FindCarB=false;
bool?FindCar_1=false;
bool?FindCarS_1=false;
bool?FindCarB_1=false;
int?sum=0;
int?sumBig=0;
int?sumSmall=0;
int?sum_1=0;
int?sumBig_1=0;
int?sumSmall_1=0;
//用來計算車流量
int?TOTAL=0;
int?TOTALs=0;
int?TOTALb=0;
int?TOTAL_1=0;
int?TOTALs_1=0;
int?TOTALb_1=0;
//車速
char?recSSUM[100]={0};
CvPoint?pt3pt4pt5;
CvPoint?pt_3pt_4pt_5;
pt1.x=60;//視頻中左上
pt1.y=60;
pt2.x=300;//視頻中右下
pt2.y=160;
pt_1.x=160;//視頻中左上
pt_1.y=180;
pt_2.x=330;//視頻中右下
pt_2.y=220;
CvRect?bndRect=cvRect(0000);//用cvBoundingRect畫出外接矩形時需要的矩形
int?avgX?=?0;
int?avgY?=?0;
?
for(int?i=0;i<10;i++)
{
TrackBlock[i]=NULL;
if((TrackBlock[i]=(struct?AvTrackBlock?*)?malloc(sizeof(struct?AvTrackBlock)))==NULL)
{
exit(1);
}
TrackBlockBig[i]=NULL;
if((TrackBlockBig[i]=(struct?AvTrackBlock?*)?malloc(sizeof(struct?AvTrackBlock)))==NULL)
{
exit(1);
}
TrackBlockSmall[i]=NULL;
if((TrackBlockSmall[i]=(struct?AvTrackBlock?*)?malloc(sizeof(struct?AvTrackBlock)))==NULL)
{
exit(1);
}
}//////////////////
int?nFrmNum?=0;
//int?frames?=?(int)?cvGetCaptureProperty(pCaptureCV_CAP_PROP_frame_COUNT);?//獲取視頻的總幀數(shù)
int?frame=0;
int?frameS=0;
int?frameB=0;
//cvNamedWindow(“video“1);
//cvN
- 上一篇:正則表達(dá)式轉(zhuǎn)NFA
- 下一篇:c++windows用戶管理
評論
共有 條評論