基于视频的城市道路交通拥堵检测系统的制作方法_3

文档序号:9751966阅读:来源:国知局
内显示VideoPath路径的视频文件 int OpenVideo(CString source_video_path,HDC hdc,CRect rect);//打开待检测视频 [0126] void PlayVideoFrame(int frame_position);//播放frame_position所在帧视 频
[0127] void ZonePlayVideo(int framepos,IplImage*imgFrame);//将播放的视频帧划 分区域int PlayVideoSpeedO ;//视频播放的速度OnStartO ;//开始播放视频 [0128] void 0nParameterset();//设置参数。
[0129] 背景建模,实施例二
[0130] 1.混合高斯背景建模
[0131] 1)描述:背景的来源是对较长一段时间内背景像素点的密度统计进行分析得出 的,该方法是基于统计的一种方法,计算的复杂度较大;因为现实环境中,道路交通的背景 是很复杂的,所以背景像素的呈现规律大多出现多峰的情况。对于多峰的情况,每个像素点 的颜色变化规律并不是有单个的高斯分布来确定的,而是由多个高斯分布在不同权重的情 况下叠加决定的。
[0132] 2)说明:调用OpenCV库函数封装好的该方法接口。
[0133] 2.平均背景建模
[0134] 1)描述:将所需要的检测帧的相同位置的像素点值和背景中相同位置的像素点值 相减,得到要检测的前景。此方法对光照的变化比较敏感。
[0135] 2)说明:该平均背景建模方法,在对视频帧序列进行处理之前要将视频帧序列图 片转化为灰度图片,将当前帧图片和对应的背景帧图片相减之后二值化前景图片,然后对 背景更新。
[0136] 3)平均建模流程如图4。
[0137] 3.录制背景视频
[0138] 1)描述:背景建模之后得到背景视频帧序列,该子功能就是将得到的背景帧序列 保存到PC机本地,这样当系统关闭时,也可以看到对视频处理之后的背景帧序列。
[0139] 2)说明:与读取视频一样,录制的视频帧序列也同样是AVI格式,否则将不能进行 录制。
[0140] 3)录制背景视频流程如图5。
[0141] 4.获取已录时间、已录帧数和已录状态
[0142] 1)描述:当背景视频进行录制时,能够得到背景录制的时间、录制帧数和录制状 ??τ 〇
[0143] 2)说明:由于播放一帧视频的时间很短,所以获取到的视频时间要尽可能的准确, 采用double类型的数据结构对时间进行操作,而录制帧数采用int类型的数据结构。
[0144] 3)获取录制时间、录制状态及录制帧数流程如图6。
[0145] 5.保存单帧背景图片
[0146] 1)描述:当对待检测时间进行背景建模之后得到背景帧序列,能保存单个的视频 中贞图片。
[0147] 2)说明:要保存的图片格式只能是BMP格式,系统不允许用户选择其他非法格式, 若是选择的图片格式不正确,那么将会保存失败。
[0148] 接口程序如下具体实施如下,
[0149] void AreaDivision(IplImage*pImg,UINT areathreshold);区域分割
[0150] void BKSubO;背景建模
[0151] LRESULT OnUpdateData(WPARAM wParam,LPARAM IParam);更新参数
[0152] void OnBackgroundvideoSave();保存背景视频
[0153] void 0nSavebgpicture();保存背景图片
[0154] void 0nSingleframe();单帧前进视频
[0155] void OnPauseO ;//暂停视频播放
[0156] void OnStartO ;//开始视频播放
[0157] void 0nAveragecheck();//平均建模
[0158] void 0nGaussecheck();//高斯建模。
[0159] 检测并提取运动目标,实施例三
[0160] 1.在背景建模之后,通过背景差分法就可以得到前景,在对前景进行提取时,要尽 可能准确地检测目标前景,检测到的目标前景的形状和面积比例要尽可能真实。录制前景 视频
[0161 ] 1)描述:背景建模之后得到前景视频帧序列,该子功能就是将得到的前景帧序列 保存到PC机本地,这样当系统关闭时,也可以看到对视频处理之后的前景帧序列。
[0162] 2)说明:与读取视频一样,录制的视频帧序列也同样是AVI格式,否则将不能进行 录制。
[0163] 2.获取录制时间、录制状态及录制帧数
[0164] 1)描述:当前景视频进行录制时,能够得到前景录制的时间、录制帧数和录制状 ??τ 〇
[0165] 2)说明:由于播放一帧视频的时间很短,所以获取到的视频时间要尽可能的准确, 采用double类型的数据结构对时间进行操作,而录制帧数采用int类型的数据结构。
[0166] 3.保存单帧前景图片
[0167] 1)描述:当对待检测时间进行背景建模之后得到前景帧序列,能保存单个的视频 中贞图片。
[0168] 2)说明:要保存的图片格式只能是BMP格式,系统不允许用户选择其他非法格式, 若是选择的图片格式不正确,那么将会保存失败。
[0169] 4.设置参数
[0170] 1)描述:当对待检测时间进行背景建模之后得到前景帧序列,要得到运动目标的 前景,需要对有前景有效阈值面积、前景二值化阈值和平均建模参数进行设置。
[0171] 2)说明:有效阈值面积和前景二值化阈值的值为整数,平均建模参数值的有效数 字一般精确到小数点后三位或者两位。
[0172] 接口程序如下具体实施如下,
[0173] void AreaDivision(IplImage*pImg,UINT areathreshold);区域分割
[0174] cvPyrSegmentation(pImg,deslmg,storage,&comp,4,200,220);金字塔分割前景
[0175] cvFindContours(desImg,storage,&comp,sizeof(CvContour),CV_RETR_ EXTERNAL, CV_CHAIN_APPR0X_SMPLE, cvPoint (0,0));获取前景目标
[0176] LRESULT OnUpdateData(WPARAM wParam,LPARAM IParam);更新参数
[0177] void OnForegroundvideoSave();保存背景视频
[0178] void 0nSavefgpicture();保存背景图片
[0179] void 0nSingleframe();视频单帧前进
[0180] void OnPauseO ;//暂停视频播放
[0181] void OnStartO ;//开始视频播放
[0182] void 0nFramesubcheck();//帧差法。
[0183] 卡尔曼滤波跟踪,实施例四
[0184] 如图8,本系统在进行详细设计时,依据就是Kalman滤波的核心公式,对选定的运 动目标的运动位置进行个跟踪。
[0185] 接口程序如下具体实施如下,
[0186] void Process() ;//Kalman滤波跟踪主要处理函数
[0187] CvMat*GetMeasurement(CvMat*mat,CvPoint previousCentre,CvPoint currentCentre);//观测矩阵//状态矩阵
[0188] void GetCurentState(CvKalman*kalman,CvPoint previousCentre,CvPoint currentCentre) ; CvKalman*Initia 1 izeKalman(CvKalman*kalman) ; //4tKalmanX^t^.
[0189] CvRect ResetRect(CvRect largerect,CvRect smallRect);//重置跟踪矩形框。
[0190] CKalman(CWnd*pParent = NULL);//标准构造函数
[0191] 交通参数的提取模块,实施例五
[0192] 主要包括的子功能道路交通路面占有率的提取、车流量的提取和车速的提取。在 进行交通参数提取时,要能够实时的反映出视频中的道路交通的状况。
[0193] 1.提取路面占有率
[0194] 1)描述:将检测到的视频帧序列中所有运动车辆进行统计,计算所有车辆的面积 之后,与视频帧中所观察到的交通道路面积进行比值,得到的值就是道路交通路面占有率。
[0195] 2)说明:路面占有率的比值有百分制和分数制,根据系统需要,将占有率的制转换 为百分制,以便后边对交通拥堵等级的检测。
[0196] 3)获取路面占有率流程图如图10。
[0197] 2.提取车流量
[0198] 1)描述:将检测到的视频帧序列中所有运动车辆进行统计,计算所有单位时间内 通过道路中某一横截面的车辆个数。
[0199] 2)说明:因为城市道路交通视频比较复杂,所以检测到的车流量的数据会有不精 确的情况存在。
[0200] 3)获取路面占有率流程如图11。
[0201] 3.提取车速
[0202] 1)描述:计算
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1