lucas-lucas kanade光流法为什么要用金字塔

The page is temporarily unavailable
nginx error!
The page you are looking for is temporarily unavailable.
Please try again later.
Website Administrator
Something has triggered an error on your
This is the default error page for
nginx that is distributed with
It is located
/usr/share/nginx/html/50x.html
You should customize this error page for your own
site or edit the error_page directive in
the nginx configuration file
/etc/nginx/nginx.conf.Lucas-Kanade光流-学术百科-知网空间
Lucas-Kanade光流
Lucas-Kanade光流
与"Lucas-Kanade光流"相关的文献前10条
在本文中,为了能在双足机器人足球比赛中提高守门员的防守能力,我们提出了一种基于光流法的双足机器人守门策略方法,通过该方法使得守门员可以更好的判断足球的运动轨迹并实施拦截。实验中采
Lucas-Kanade算法是一种重要的光流估计技术,在计算机视觉领域有广泛的应用。但对于图像纹理欠丰富的区域,Lucas-Kanade算法光流估计结果较差。文章提出了一种改进的
在使用Lucas-Kanade光流法进行目标跟踪时,由于目标本身存在旋转、位移、缩放等情况,导致估计参数偏差大而影响跟踪的准确性.因此提出使用PSO对Lucas-Kanade光流
目前,在人脸特征点跟踪领域,光流算法的使用较广泛。本文提出对小姿态人脸采用仿射变换矫正以及对大姿态人脸通过跟踪准确特征点的偏移量改进金字塔Lucas Kanade光流方法。实验结
光流估计是运动目标检测中的一类重要的方法。本文对序列图像通过自适应高斯平滑滤波器处理,以降低图像的随机噪声,提出了一种改进的Lucas–Kanade光流估算模型,并选用3D-So
为了提高视频监控领域中出入口的人数统计的准确率,提出构建一种近似俯视运动行人面积作为人数统计的特征。使用垂直悬挂的单目摄像头对出入口进行拍摄,设置一条虚拟计数线,利用Lucas-
通过机器视觉技术对眼睛动作和视线转移特征的分析可实现驾驶人警觉状态的有效估计,但实际行车过程中驾驶人面部姿态的不确定性变化对眼睛定位算法提出了严峻挑战。本文中在采用主动形状模型算
针对计算机视觉中的运动目标跟踪与检测问题,特别是运动目标被遮挡丢失和大幅度机动现象,提出了一种基于Lucas-Kanade光流向量补偿算法的运动目标检测方法。该方法利用Lucas
在红外图像运动目标检测的研究中,针对IR探测器在不同的工作状态下所获取的复杂红外图像序列,为了从中有效地检测出中的运动目标,提出了一种用帧间差分和Lucas Kanade光流法的
提出一种基于金字塔Lucas-Kanade光流跟踪技术的变形位移测量算法.该算法通过检测变形前图像的角点,先利用金字塔Lucas-Kanade算法在变形图像中搜索其匹配点,再经计
"Lucas-Kanade光流"的相关词
快捷付款方式
订购知网充值卡
<font color="#0-819-9993
<font color="#0-
<font color="#0-1224人阅读
opencv(47)
computer vision(31)
光流分为稀疏光流和稠密光流,稠密光流的每个像素与速度或者可以说是与位移相关,使用稠密光流得以跟踪运动的方法有Horn-Shrunk方法,还有块匹配方法,但是现在已经很少使用到了,这里不做介绍,稠密光流需要使用某种插&#20540;方法在比较容易跟踪的像素之间进行插&#20540;以解决那些运动不明确的像素,因此可想而知,计算量是相当大的。
而对于稀疏光流来说,在他计算时需要在被跟踪之前指定一组点(角点),因此在使用LK方法之前我们需要配合使用cvGoodFeatureToTrack()来寻找角点,继而使用cvFindCornerSubPix()在之前基础之上精确角点的位置,即寻找亚像素角点。然后利用金字塔LK光流算法,对运动进行跟踪。
LK方法的数学解析部分比较难,所以我们跳过数学原理,直接谈论其算法原理,首先我们需要明白LK算法的三个假设:
1、亮度恒定,图像场景中的目标的像素在帧间运动时外观上保持不变。
2、时间连续或者运动是小运动,图像随时间的运动比较缓慢,实际中指的是时间变化相对图像中的运动的比例要足够小。
3、空间一致。一个场景中的同一表面上的邻近点具有相&#20284;的运动,在图像平面上的投影也在邻近区域。
下面给出使用金字塔LK光流算法的代码,笔者在算法相应处给出了一定的注释:
// TestLucasKanade.cpp : 定义控制台应用程序的入口点。
#include &stdafx.h&
#include &cv.h&
#include &highgui.h&
const int MAX_CORNERS=500;
int main(int argc,char** argv)
&IplImage* imgA=cvLoadImage(argv[1],CV_LOAD_IMAGE_GRAYSCALE);
&IplImage* imgB=cvLoadImage(argv[2],CV_LOAD_IMAGE_GRAYSCALE);
&CvSize img_sz=cvGetSize(imgA);
&int win_size=10;
&IplImage* imgC=cvLoadImage(argv[3],CV_LOAD_IMAGE_UNCHANGED);
&IplImage* eig_image=cvCreateImage(img_sz,IPL_DEPTH_32F,1);
&IplImage* tmp_image=cvCreateImage(img_sz,IPL_DEPTH_32F,1);
&int corner_count=MAX_CORNERS;
&CvPoint2D32f* cornersA=new CvPoint2D32f[MAX_CORNERS];
&cvGoodFeaturesToTrack(//检测角点
&&eig_image,//两个临时图像
&&tmp_image,
&&cornersA,//函数的输出,即检测到的角点数组
&&&corner_count,//最大角点数,调用函数后返回的角点的数目
&&5.0,//返回角点之间的最短距离不应小于min_distance
&cvFindCornerSubPix(//根据上一步精确角点位置,确定亚像素角点
&&cornersA,//整数&#20540;的像素位置
&&corner_count,//角点数目
&&cvSize(win_size,win_size),//等式产生窗口的尺寸
&&cvSize(-1,-1),//禁区,不需要时设置cvSize(-1,-1)
&&cvTermCriteria(CV_TERMCRIT_ITER|CV_TERMCRIT_EPS,20,0.03)
&char features_found[MAX_CORNERS];
&float feature_errors[MAX_CORNERS];
&CvSize pyr_sz=cvSize(imgA-&width&#43;8,imgB-&height/3);
&IplImage* pyrA=cvCreateImage(pyr_sz,IPL_DEPTH_32F,1);
&IplImage* pyrB=cvCreateImage(pyr_sz,IPL_DEPTH_32F,1);
&CvPoint2D32f* cornersB=new CvPoint2D32f[MAX_CORNERS];
&cvCalcOpticalFlowPyrLK(
&&imgA,//初始图像
&&imgB,//最终图像
&&pyrA,//申请存放两幅输入图像金字塔的缓存,大小至少为(img.width-8)*img.height/3字节
&&cornersA,//用于寻找运动的点
&&cornersB,//存放featureA中点的新的位置
&&corner_count,//featureA中点的数目
&&cvSize(win_size,win_size),
&&5,//金字塔层数
&&features_found,//对应点是否在第二副图像中发现
&&feature_errors,
&&cvTermCriteria(CV_TERMCRIT_ITER|CV_TERMCRIT_EPS,20,0.3),
&for(int i=0;i&corner_i&#43;&#43;)
&&if(features_found[i]==0||feature_errors[i]&550)
&&&printf(&error is %f/n&,feature_errors[i]);
&&printf(&got it/n&);
&&CvPoint p0=cvPoint(cvRound(cornersA[i].x),cvRound(cornersA[i].y));
&&CvPoint p1=cvPoint(cvRound(cornersB[i].x),cvRound(cornersB[i].y));
&&cvLine(imgC,p0,p1,CV_RGB(255,0,0),2);
&cvNamedWindow(&ImageA&,0);
&cvNamedWindow(&ImageB&,0);
&cvNamedWindow(&LKpyr_opticalFlow&,0);
&cvShowImage(&ImageA&,imgA);
&cvShowImage(&ImageB&,imgB);
&cvShowImage(&LKpyr_opticalFlow&,imgC);
&cvWaitKey(0);
&return 0;
根据上述代码,可以总结出金字塔LK光流应用的基本过程:首先输入图像,在featureA中列出需要跟踪的点,然后调用函数,函数返回后,检查status数组以确定哪些点被成功跟踪,再检查featureB得到这些点的新位置。
以下是程序的运行结果:
通过红线的运动方向可以明显的看出手的运动趋势。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:175393次
积分:2098
积分:2098
排名:第11861名
转载:156篇
评论:29条
(1)(1)(11)(6)(11)(10)(53)(7)(11)(15)(40)}

我要回帖

更多关于 cohn kanade下载 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信