- 1.原理
- 论文
- 知乎上的相关blog
- 2.c++实现版
- 3.python实现版
- 4.matlab实现版
- 5.嵌入式移植
- TI C6678
- Xilinx Virtex 7
- GPU TX2 ( support later..)
- c++ & c
- matlab
- python
- FFT
- HOG
- verilog
-
paper_blog
-
c++__implementation
-
matlab_implementation
-
python_implementation
-
dsp_implementation
- opencv
- opencv MAT、CvMat、IplImage类实现
- opencv HOG实现(c++ 已有算法细节)
- opencv FFT实现
- TI library DSPLIB
- emcv一个2012年的dsp opencv库
kcf c++代码汇总表
文件名称 | 行数 | 描述 | 函数 | |
.cpp | main.cpp | 115 | 主程序 |
int main(int argc, char * argv[]) 函数入口,主程序,54行代码 std::vector<cv::Rect_<float>> getgroundtruth(std::string txt_file) 获取目标位置真值,24行 cv::Rect_<float> getAxisAlignedBB(std::vector<cv::Point2f> polygon) 获取一个坐标轴对齐后的矩形框,15行 |
kcf_tracker.cpp | 351 | kcf跟踪器 |
KCFTracker::KCFTracker(bool hog, bool fixed_window, bool multiscale, bool lab) 跟踪器构造函数39行 void KCFTracker::init(const cv::Rect &roi, cv::Mat image) 跟踪器初始化54行 cv::Rect KCFTracker::update(cv::Mat image) 跟踪器更新位置44行 cv::Point2f KCFTracker::detect(cv::Mat z, cv::Mat x, float &peak_value) 检测21行 void KCFTracker::train(cv::Mat x, float train_interp_factor) 训练15行 cv::Mat KCFTracker::gaussianCorrelation(cv::Mat x1, cv::Mat x2) 高斯相关29行 cv::Mat KCFTracker::createGaussianPeak(int sizey, int sizex) 高斯峰值获取16行 cv::Mat KCFTracker::getFeatures(const cv::Mat & image, bool inithann, float scale_adjust) 特征获取120行 void KCFTracker::createHanningMats() 初始化汉明窗22行 float KCFTracker::subPixelPeak(float left, float center, float right) 一维子峰值计算10行 |
|
fhog.cpp | 326 | HOG特征提取 |
int getFeatureMaps(const IplImage* image, const int k, CvLSVMFeatureMapCaskade **map) 获取特征图126行 int normalizeAndTruncate(CvLSVMFeatureMapCaskade *map, const float alfa) 归一化及截断,85行 int PCAFeatureMaps(CvLSVMFeatureMapCaskade *map) 特征降维,52行 int allocFeatureMapObject(CvLSVMFeatureMapCaskade **obj, const int sizeX,const int sizeY, const int numFeatures) 分配特征表14行 int freeFeatureMapObject (CvLSVMFeatureMapCaskade **obj) 释放特征表空间8行 |
|
.hpp | kcftracker.hpp | 60 | kcf跟踪器头文件 |
KCFTracker类,无子函数 |
ffttools.hpp | 179 | fft头文件 |
cv::Mat fftd(cv::Mat img, bool backwards) 快速FFT,52行代码 cv::Mat real(cv::Mat img) 获取复数实部,6行代码 cv::Mat imag(cv::Mat img) 获取复数虚部,6行代码 cv::Mat magnitude(cv::Mat img) 获取复数模值,10行代码 cv::Mat complexMultiplication(cv::Mat a, cv::Mat b) 复数乘法,15行代码 cv::Mat complexDivision(cv::Mat a, cv::Mat b) 复数除法,18行代码 void rearrange(cv::Mat &) 图像重排,19行代码 void normalizedLogTransform(cv::Mat &img) 归一化log变换,7行代码 |
|
rectools.hpp | 91 | rect头文件 |
inline cv::Vec<t, 2 > center(const cv::Rect_<t> &rect) 获取中心 4行 inline t x2(const cv::Rect_<t> &rect) 4行 inline t y2(const cv::Rect_<t> &rect) 4行 inline void resize(cv::Rect_<t> &rect, float scalex, float scaley = 0) 调整尺寸10行 inline void limit(cv::Rect_<t> &rect, cv::Rect_<t> limit) 边界处理17行 inline void limit(cv::Rect_<t> &rect, t width, t height, t x = 0, t y = 0) 3行 inline cv::Rect getBorder(const cv::Rect_<t > &original, cv::Rect_<t > & limited) 获取边界10行 inline cv::Mat subwindow(const cv::Mat &in, const cv::Rect & window, int borderType = cv::BORDER_CONSTANT) 子窗口14行 inline cv::Mat getGrayImage(cv::Mat img) 获取灰度图6行 |
|
lambda.hpp | 18 | 一些预定义参数 |
无子函数 |
|
.h | tracker.h | 16 | tracker class 定义 |
无子函数 |
dirent.h | 1225 | linux 底层在windows上的实现 |
过长,不展开 |