基于OPENCV的BOF实践
BOF:sift,k-means,svm
环境:Opencv3.4,vs2015
xue.2018.5.2
目录:
0.参考文献
[1]BOF算法+K-Means算法实现图像检索
[2]Bag-of-Features Descriptor on SIFT Features with OpenCV (BoF-SIFT)
1.BOF流程及代码实现
1.1视觉词典的提取与构建
对图像进行特征提取,可以采用sift,surf,mesr等特征提取。采用k-means将特征点聚类为200个,相当于词典中有200个基本词汇。
vector<KeyPoint> keypoints;
Mat descriptor;
Mat featuresUnclustered;
Ptr<Feature2D> sift = xfeatures2d::SIFT::create();
//遍历文件夹
char billPicsPathName[256] = "C:\\tImg";
CStatDir statdir;
if (!statdir.SetInitDir(billPicsPathName))
cout << "文件夹为空" << endl;
vector<string> file_vec = statdir.BeginBrowseFilenames("*.jpg");
floa