资源简介
opencv 获取道路上车流量,实现上下行
代码片段和文件信息
#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); //设置要读取的帧
//}
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);//轮廓边缘提取时的参数
CvSeq * contour = 0;//轮廓边缘提取时的参数
int mode = CV_RETR_EXTERNAL;//轮廓边缘提取时的参数
int linetype=CV_AA;
//形态学处纴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); //获取视频的总帧数
int frame=0;
int frameS=0;
int frameB=0;
//cvNamedWindow(“video“1);
//cvN
- 上一篇:正则表达式转NFA
- 下一篇:c++windows用户管理
相关资源
- Opencv C++ 读取、保存图片
- OpenCV视频的保存以及显示
- c++中的chamfer matching 实现
- opencv背景差分
- vibe算法opencv+c++,RGB图像可用
- 行人检测 opencv
- opencv 对视频进行感兴趣区域设置并保
- fastMatch的c++实现(需要opencv支持)
- OpenCV 装入一幅彩色图像然后在源图像
- 车道线识别源码
- 基于opencv园检测
- 植物大战僵尸基于OpenCv和C++实现
- OPENCV角点检测
- opencv标志识别
- 基于轮廓的倾斜仪表校正
- 在opencv中将两个图像给融合,让图像
- 使用OpenCV编写一个程序,该程序完成
- 使用 OpenCV 编制一个简单的徒手绘图程
- OpenCV解决PnP问题
- 基于opencv3.2的Moravec、Forstner、Harris算
- opencv+udp+c++ 的摄像头实时传输显示源
- MFC中嵌入显示opencv图像
- opencv调用海康摄像头
- 激光雷达数据读取以及显示C++需配置
- OpenCV在TI 达芬奇以及OMAP平台下的移植
- 双目视觉匹配得到视差图
- CvImgCtrl 演示程序
- 用OpenCV实现Photoshop色阶调整算法
- 贝叶斯抠图C++源代码
- emgucv&opencv图像处理函数说明
评论
共有 条评论