织梦CMS - 轻松建站从此开始!

360BC游戏

当前位置: 主页 > 手机游戏

KLT(Kanade-Lucas-Tomasi Feature Tracker) 代码分析

时间:2025-09-12 01:46来源:本站 作者:admin666 点击:
转自http://blog.csdn.net/dreamd1987/article/details/7907437 因为研究需要仔细看了下代码看看有什么可以利用的地方。 整体来说Kanade-Lucas-Tomasi Feature Tracker的方法就是首先找去特征点之后用光流去

转自:http://blog.csdn.net/dreamd1987/article/details/7907437

因为研究需要,仔细看了下代码,看看有什么可以利用的地方。

整体来说Kanade-Lucas-Tomasi Feature Tracker的方法就是首先找去特征点,之后用光流去跟踪的方法。

Opencv中已经有了example,大家可以运行下看效果,同时Homepage:http://www.ces.clemson.edu/~stb/klt/

上有源码,整个的流程跟Opencv差不多。

我们以官网上的原程序中的example1进行分析:(剩下的几个例子整体流程都差不多,仅仅是目的不一样)

首先都是建立两个结构体:

tc就是跟踪的中用到的一些参数在选特征点的时候也有用到。

fl就是我们说到的特征点了,包括了特征值和特征点在图像中的位置。

之后使用:

使用上面的函数选取特征点

使用这个函数在img2中寻找对应的特征点。

一次循环就可以实现跟踪了。

那么出现了一个问题:特征点是怎么定义的:

我们分析KLTSelectGoodFeatures这个函数:

函数中又使用了:


这个函数,函数中首先见了了一个pointlist的分量,并分配了内存空间:

为什么要*3呢?其实pointlist中存放了图像中点的位置x,y和特征值的大小val。

特征值是什么呢?这个特征就是对应像素点的梯度值。

代码中的特征值取得时每个像素点临域梯度值的加权值。

之后程序来到了函数:

这里通过比较每个像素点val和对应阈值的大小来提取特征点:

min_eigenvalue就是所使用的阈值,在tc中定义

那么程序的修改,我们需要根据自己的特征对这个阈值进行修改,同时对featurelist进行如上的修改,其实主要还是x,y,val三个值的修改。

不对的地方请大家指正。

(责任编辑:蚂蚁团队)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容