TLD源码--lk.cpp
2014-03-07 20:17
99 查看
lk.cpp在mex文件夹下面,在compile时和Opencv的库文件一起编译,在tldExample->tldProcessFrame->tldTracking中被调用,输入前一帧图像,后一帧图像和前一帧目标窗口提取的特征矩阵,这个矩阵是平均散落在目标窗口中的,并非是特殊的角点,因此也带来了一些问题,就是图像比较复杂时跟踪出错情况很明显,比如有许多人,而且发生遮挡频繁时,tld就根本跟踪不到目标了。lk文件处理两种情况,第一种case
0是对变量的初始化,IMG是存放输入图像的,PYR是放金字塔缓存的,CvPoint2D32f* points[3] = {0,0,0};是指向图像中点的指针,CvPoint2D32f定义如下:
typedef struct CvPoint2D32f
{
float x;
float y;
}
CvPoint2D32f;
case 2是用来处理跟踪的,lk(2,tld.img{I}.input,tld.img{J}.input,xFI,xFI),2用来选择处理哪类问题,tld.img{I}.input前一帧图像,是原始图像未处理过,tld.img{J}.input,后一帧图像,xFI是选取的特征点矩阵。
其中的主要函数:loadImageFromMatlab()顾名思义,就是把matlab里的图像,其实就是一个二维矩阵,读入到Iplimg类型的变量里去,其实就是存到imagedata结构里面。cvCalcOpticalFlowPyrLK,主要的跟踪处理函数,具体流程也不太熟,目的是在下一帧图像中跟踪前一帧的点,结果放入status数组中,status[i]==1表示跟踪上,==0表示没有跟踪上,normCrossCorrelation是对跟踪上的点,计算匹配度,就是计算ncc的值,euclideanDistance是计算相应的点对之间的欧式距离,计算fb的值。lk(2,tld.img{I}.input,tld.img{J}.input,xFI,xFI)这句的输出是一个列向量集,每列对应着一个点,前两个是x,y
坐标,后两个是匹配度和欧式距离。
0是对变量的初始化,IMG是存放输入图像的,PYR是放金字塔缓存的,CvPoint2D32f* points[3] = {0,0,0};是指向图像中点的指针,CvPoint2D32f定义如下:
typedef struct CvPoint2D32f
{
float x;
float y;
}
CvPoint2D32f;
case 2是用来处理跟踪的,lk(2,tld.img{I}.input,tld.img{J}.input,xFI,xFI),2用来选择处理哪类问题,tld.img{I}.input前一帧图像,是原始图像未处理过,tld.img{J}.input,后一帧图像,xFI是选取的特征点矩阵。
其中的主要函数:loadImageFromMatlab()顾名思义,就是把matlab里的图像,其实就是一个二维矩阵,读入到Iplimg类型的变量里去,其实就是存到imagedata结构里面。cvCalcOpticalFlowPyrLK,主要的跟踪处理函数,具体流程也不太熟,目的是在下一帧图像中跟踪前一帧的点,结果放入status数组中,status[i]==1表示跟踪上,==0表示没有跟踪上,normCrossCorrelation是对跟踪上的点,计算匹配度,就是计算ncc的值,euclideanDistance是计算相应的点对之间的欧式距离,计算fb的值。lk(2,tld.img{I}.input,tld.img{J}.input,xFI,xFI)这句的输出是一个列向量集,每列对应着一个点,前两个是x,y
坐标,后两个是匹配度和欧式距离。
相关文章推荐
- TLD源码理解 run_tld.cpp
- TLD源码理解之TLD.cpp
- TLD(Tracking-Learning-Detection)算法学习与源码解析(二)之runtld.cpp源码解析
- TLD(Tracking-Learning-Detection)算法学习与源码解析(三)之 tld.cpp源码解析
- TLD源码学习-fern.cpp
- TLD(Tracking-Learning-Detection)算法学习与源码解析(四)之LKTracker源码分析
- TLD学习(2)-调试lk.cpp
- TLD(Tracking-Learning-Detection)算法学习与源码解析(五)之FerNNClassifier.cpp源码解析
- OpenTLD源码生成VS2010工程和编译过程
- TLD(Tracking-Learning-Detection)学习与源码理解之(四)
- 学习笔记: 源码 multinomial_logistic_loss_layer.cpp 略晓
- cmake源码编译安装jsoncpp
- SURF源码分析之main.cpp
- caffe源码解析 — SyncedMemory.cpp
- aoptflowlk.cpp
- redhat6.0源码使用jsoncpp
- TLD(已测试)--VS2010下TLD算法源码调试详解,解决卡机问题
- 使用“Cocos引擎”创建的cpp工程如何在VS中调试Cocos2d-x源码
- Irrlicht 源码学习笔记 【CFileList.h/cpp】【CReadFile.h/cpp】【CMemoryReadFile.h/cpp】
- TLD的源码整理总结工作—检测篇