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