《LK稀疏光流运动目标检测.docx》由会员分享,可在线阅读,更多相关《LK稀疏光流运动目标检测.docx(2页珍藏版)》请在优知文库上搜索。
1、算法流程简析1 .定义特征参数(获取角点的函数输入参数,包括最大角点数,最小角点质量,最小角点间距,离散卷积块大小)2 .定义LK运算参数(窗口大小(每个金字塔水平搜索尺寸),金字塔层数,终止条件)3 .随机生成颜色用于后续角点染色4 .读取并转化为灰度图像5 .通过goodfeaturestotrack函数获取角点(特征点)6 .定义与图像同大小的mask用于后续轨迹绘制7 .进入While循环,若没有读取到下一帧则退出8 .利用CaICOPtiCaIF1。WPyrLK函数,输入上一帧,当前帧,上一帧的角点。输出PI为当前帧角点,st为是否找到角点。9 .成功找到则将上一帧角点赋予good_
2、old,下一帧角点赋予good_new。10 .通过两帧角点信息goodOld与goodnew绘制角点的位移轨迹,通过add函数将原图与轨迹图相加11 .显示,更新p,进入下一帧分析:由于角点为算法最初选定,若后续场景、目标变动较大时,容易发生角点丢失现象,准确度会下降。但LK稀疏光流仅选取了部分特征点运算,计算量小,运算速度快。函数原型:nextPts,status,err=cv2.CalcopticalflowpyrLK(prevlmg,nextlmg,prevPts,nextPts,status,err,winsize,maxlevel,criteria,flags,mineigthre
3、shold)PreVimg:前一帧nextimg:后一帧prevPts:待跟踪的特征点向量nextPts:输出跟踪特征点向量StatUS:特征点是否找到,找到为1,否则为0;ew:输出错误向量WinSiZe:搜索窗口大小maxlevel:最大金字塔层数flags:可选标识OPTFLOW_USE_INITIAL_FLOW与OPTFLOW_LKGETMIN_EIGENVALS初始特征点:Cv2.goodfeaturestotrack(image,maxcorners,qualitylevel,mindistance,corners,mask,blocksize,Useharrisdetector,k)Image:输入单通道图像,8,32bitMaxcorners:最大角点数Qualitylevel:最小可接受角点质量MindiStanCe:角点间最小距离Corners:输出检测到的角点MaSk:需要检测的区域BloCkSiZe:计算离散卷积块的大小USeharriSdeteCtor:是否使用harris角点