《farneback稠密光流运动目标检测.docx》由会员分享,可在线阅读,更多相关《farneback稠密光流运动目标检测.docx(2页珍藏版)》请在优知文库上搜索。
1、Farneback稠密光流算法1 .读取文件2 .转为灰度3 .初始化生成同形状HSV元组4 .将HSV第二列全置为255,第二列表示色彩纯度。5 .进入while循环遍历每一帧,调用calcptica1FlOwFarneback函数计算前一帧与当前帧的光流,输出为flow(每点的像素位移值)6 .CartToPolar函数计算flow第一列与第二列梯度大小与方向,用于将直角坐标系光流场转化为极坐标系下光流场输出幅度mag与角度ang7 .计算角度ang,从弧度转化为角度制,赋予HSv第一列8 .利用nomalize归一化函数,NORkLMlNMAX线性归一化,将Inag按比例缩放在0255之
2、间。赋予HSV第三列9 .HSV转为BGR图像解析:稠密光流算法对输入图像的每一个像素点都进行了计算,计算量大,运算时间较长,但更为准确。计算的输出结果中,图像中的颜色表示着该像素点的运行方向,同方向运动的点颜色相同。图像的亮度表示着该像素点运动的速度,速度越快则越亮。(缓慢行走的人,与镜头旋转结合,黑色区域为相对静止不动的)学习笔记:HSV颜色空间:HSV是一种将RGB色彩模型中的点在圆柱坐标系中的表示法,这种表示法试图做到比基于笛卡尔坐标系的几何结构RGB更加直观。H:色调,O红,120绿,240蓝S:纯度,(HV:亮度0255cv2.calcpticalFlOwFarneback(pre
3、v,next,fIowO,pyrscale,levels,winsize,interation,poly_n,poly_sigma,flags)prev:输入前一帧图像next。:输入后一帧图像floM:输出光流pyr_scal:金字塔上下层尺度关系IeVeIS:金字塔层数WinSiZe:均值窗口大小,越大越能dcnoise并检测快速移动目标,但会引起模糊运动区域。Interation:迭代次数Poly_n:像素邻域范围大小一般为5.7等Poly_sigma:高斯标准差一般为11.5FlagS:计算方法:optflow_use_initial_flow与optf1ow_farneback_gaussian