相关疑难解决方法(0)

检测器,提取器和匹配器的分类

我是opencv的新手,并尝试在两个图像之间实现图像匹配.为此,我试图理解特征描述符,描述符提取器和描述符匹配器之间的区别.我遇到了很多术语,试图在opencv文档网站上阅读它们,但我似乎无法理解这些概念.我理解这里的基本区别.特征检测与描述符提取的区别

但是在研究这个主题时我遇到了以下术语:

快速,GFTT,SIFT,SURF,MSER,STAR,ORB,BRISK,FREAK,Brief

我理解FAST,SIFT,SURF是如何工作的,但似乎无法弄清楚上面哪些只是探测器,哪些是提取器.

然后是匹配者.

FlannBased,BruteForce,knnMatch以及其他一些人.

经过一些阅读后,我认为某些匹配器只能与某些提取器一起使用,如此处所述.OpenCV ORB功能检测器如何工作? 给出的分类非常清楚,但它仅适用于少数提取器,我不理解float和uchar之间的区别.

所以基本上,有人可以请

  1. 如上所述,基于float和uchar,或其他类型的分类,对检测器,提取器和匹配器的类型进行分类?
  2. 解释float和uchar分类之间的区别或者使用哪种分类?
  3. 提到如何初始化(代码)各种类型的探测器,提取器和匹配器?

我知道它要求很多,但我将非常感激.谢谢.

c++ opencv image-processing computer-vision feature-detection

58
推荐指数
1
解决办法
2万
查看次数

如何将 OpenCV Keypoint 特征保存到数据库?

我的项目是使用 OpenCV 库识别 Android 上的叶子。我使用ORB检测来获取图像的关键点并使用ORB描述符来获取关键点的特征。这是我使用的代码:

bmp=BitmapFactory.decodeResource(getResources(),R.drawable.t1);
Utils.bitmapToMat(bmp, mat);
FeatureDetector detector = FeatureDetector.create(FeatureDetector.ORB);
detector.detect(mat, keypoints);
DescriptorExtractor extractor = DescriptorExtractor.create(DescriptorExtractor.ORB);
extractor.compute(mat, keypoints, features);
Run Code Online (Sandbox Code Playgroud)

来源:http : //answers.opencv.org/question/6260/orb-features/

但是每次我输入相同的图像,该图像的关键点总是不同的。如果总是不同,我可以将关键点的特征保存到数据库吗?或者我应该保存图像以保存特征数据?如果可以保存到数据库,我该怎么做??

android opencv feature-extraction orb

4
推荐指数
1
解决办法
6605
查看次数