opencv之生成BOW特征
来源:互联网 发布:深入浅出数据分析 mobi 编辑:程序博客网 时间:2024/05/29 03:30
最近正在学习opencv,看了两天的书了,刚好想要实现bow特征提取。
在官方文档上找到,地址点击打开链接。
分两个步骤:
第一步,使用BOWKMeansTrainer 生成码书
第二步,对图像产生和码书对应的直方图(即bow特征)
// opencvTest.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include<iostream> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp>#include <opencv2/calib3d/calib3d.hpp> #include <opencv2/imgproc/imgproc.hpp> #include<opencv2/features2d/features2d.hpp>#include<opencv2/nonfree/nonfree.hpp>#include<vector>#include<fstream>using namespace cv;using namespace std;const int clusterNum = 10;int main(){initModule_nonfree();//get all image keypoints and discriptorsSiftFeatureDetector sift;SiftDescriptorExtractor extractor;vector<KeyPoint> p1, p2, p3;Mat dp1, dp2, dp3;Mat pic1 = imread("1.jpg",0);Mat pic2 = imread("2.jpg",0);Mat pic3 = imread("3.jpg",0);if ( pic1.empty()||pic2.empty() || pic3.empty()){if (pic1.empty())cout << "pic1 open failed" << endl;if (pic2.empty())cout << "pic2 open failed" << endl;if (pic3.empty())cout << "pic3 open failed" << endl;return -1;}//get all picture's keypoints and descriptorssift.detect(pic1, p1);extractor.compute(pic1, p1, dp1);sift.detect(pic2, p2);extractor.compute(pic2, p2, dp2);sift.detect(pic3, p3);extractor.compute(pic3, p3, dp3);//create the BOWKMeansTrainer objectBOWKMeansTrainer bow = BOWKMeansTrainer(clusterNum, TermCriteria(CV_TERMCRIT_ITER, 15, 0.1));//add the descriptors to trainsetbow.add(dp1);bow.add(dp2);bow.add(dp3);cout << "the count of the descriptors :" << bow.descripotorsCount() << endl;// get the vocabularyMat vocabulary = bow.cluster();cout << vocabulary << endl; //create the bowExtractor //Ptr<FeatureDetector>detector = FeatureDetector::create("SIFT");Ptr<DescriptorExtractor> descriptorExtractor = DescriptorExtractor::create("SIFT");Ptr<DescriptorMatcher> descriptorMatcher = DescriptorMatcher::create("BruteForce");BOWImgDescriptorExtractor bowex = BOWImgDescriptorExtractor(descriptorExtractor, descriptorMatcher);Mat bowfeatures;bowex.setVocabulary(vocabulary);bowex.compute(pic1, p1, bowfeatures);cout << bowfeatures << endl; return 0;}
文章由liuzw1995 原创,转载请注明出处。
0 0
- opencv之生成BOW特征
- 基于OpenCV的BOW特征提取
- 学习OpenCV——BOW特征提取函数(特征点篇)
- 学习OpenCV——BOW特征提取函数(特征点篇)
- 学习OpenCV——BOW特征提取函数(特征点篇)
- OpenCV应用----BOW篇
- OpenCV应用----BOW篇
- OpenCV应用----BOW篇
- opencv特征匹配之SSD
- 图像局部特征(十八)--BOW
- BOW
- BoW
- BoW
- BOW
- Bow
- 图像特征之LBP(OpenCV)
- opencv之纹理特征(熵值)的提取
- opencv特征检测之角点检测
- 安装使用virtualenv
- piwik、php7 安装
- JAVA 数据库操作工具类(项目封装,mySQL)
- 明明加载好了css,js文件,页面的样式还是不对的解决办法
- <a href>控制长度
- opencv之生成BOW特征
- 正交矩阵和Gram-Schmidt正交化
- [Error!]the type java.lang.object cannot be resolved. it is indirectly reference
- react 小例子
- Spring MVC @ModelAttribute注解总结
- u-boot第二阶段启动流程分析
- oracle sql语句优化总结
- 一个数被质数分解
- 11种行为型模式之:策略模式(Strategy)