首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在opencv 4.1.0中无法解决DescriptorExtractor和FeatureDetector的导入问题

在OpenCV 4.1.0中,DescriptorExtractor和FeatureDetector已经被废弃,取而代之的是cv::DescriptorMatcher和cv::Feature2D。这是由于OpenCV库的更新和改进所导致的变化。

cv::DescriptorMatcher是一个用于特征匹配的类,它可以根据不同的算法(如Brute-Force、FLANN等)进行特征匹配。它的作用是在给定一组特征描述子之后,找到最佳匹配的特征点。

cv::Feature2D是一个抽象类,它定义了特征提取和描述的接口。它的派生类(如cv::ORB、cv::SIFT、cv::SURF等)可以用于提取图像中的特征点,并生成相应的特征描述子。

在解决DescriptorExtractor和FeatureDetector导入问题的同时,可以采用以下步骤:

  1. 确保你已经正确安装了OpenCV 4.1.0版本,并且已经将其配置到你的开发环境中。
  2. 在你的代码中,使用以下头文件来导入cv::DescriptorMatcher和cv::Feature2D:
代码语言:txt
复制
#include <opencv2/opencv.hpp>
#include <opencv2/features2d.hpp>
#include <opencv2/xfeatures2d.hpp>
  1. 在代码中,使用cv::DescriptorMatcher和cv::Feature2D的相应方法来进行特征匹配和特征提取。例如,使用cv::DescriptorMatcher的match()方法进行特征匹配,使用cv::Feature2D的detectAndCompute()方法进行特征提取。

以下是一些示例代码,展示了如何使用cv::DescriptorMatcher和cv::Feature2D:

代码语言:txt
复制
cv::Mat image1 = cv::imread("image1.jpg", cv::IMREAD_GRAYSCALE);
cv::Mat image2 = cv::imread("image2.jpg", cv::IMREAD_GRAYSCALE);

// 创建特征提取器和描述子匹配器
cv::Ptr<cv::Feature2D> detector = cv::ORB::create();
cv::Ptr<cv::DescriptorMatcher> matcher = cv::DescriptorMatcher::create("BruteForce-Hamming");

// 检测和计算特征点和描述子
std::vector<cv::KeyPoint> keypoints1, keypoints2;
cv::Mat descriptors1, descriptors2;
detector->detectAndCompute(image1, cv::noArray(), keypoints1, descriptors1);
detector->detectAndCompute(image2, cv::noArray(), keypoints2, descriptors2);

// 特征匹配
std::vector<cv::DMatch> matches;
matcher->match(descriptors1, descriptors2, matches);

// 显示匹配结果
cv::Mat matchImage;
cv::drawMatches(image1, keypoints1, image2, keypoints2, matches, matchImage);
cv::imshow("Matches", matchImage);
cv::waitKey(0);

在这个例子中,我们使用了ORB特征提取器和Brute-Force匹配器来进行特征匹配。你可以根据你的需求选择不同的特征提取器和匹配器。

对于更多关于cv::DescriptorMatcher和cv::Feature2D的详细信息,你可以参考OpenCV官方文档中的以下链接:

希望这些信息能够帮助你解决在OpenCV 4.1.0中使用DescriptorExtractor和FeatureDetector的导入问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

计算机视觉 OpenCV Android | 特征检测与匹配 之 Feature2D中检测器与描述子

如果使用OpenCV官方编译好OpenCV4Android 3.x版本SDK, 则当声明与使用这两个类型时候,它会告诉你不支持。...OpenCV4Android中创建ORB检测器与描述子代码: FeatureDetector detector = FeatureDetector.create(FeatureDetector.ORB...检测器与描述子 BRISK(Binary Robust Invariant Scalable Keypoint)特征检测与描述子是2011年由几位作者联合提出一种新特征提取算法, OpenCV4Android...OpenCV4Android中创建AKAZE特征检测器与描述子代码如下: FeatureDetector detector = FeatureDetector.create(FeatureDetector.AKAZE...OpenCV4Android中feature2d检测器与描述子使用 基于feature2d中检测器对象实现对象关键点检测演示代码: FeatureDetector detector = null;

2.1K20
  • 基于OpenCV全景拼接(Python)

    因为处理关键点检测和局部不变性OpenCV 2.4.XOpenCV 3.X中有很大不同,比如SIFTSURF。这里将给出兼容两个版本代码。...之后博客会解决多张图片拼接,而不仅仅只是针对两张图片。 OpenCV全景拼接 全景拼接算法有四部分组成 Step1:从输入两张图片里检测关键点、提取局部不变特征。...imutils是一套OpenCV工具包。最后把cv2导入OpenCV第6行定义了Stitcher类,可以检测我们是否使用了OpenCV3。...由于opencv 2.4OpenCV 3处理关键点检测和局部不变特征有明显差异,OpenCV版本对我们使用是很重要。...如果出现这种问题,请正确安装OpenCVopencv_contrib,这样就能支持后面一系列操作。 第58-65行是我们用OpenCV2.4情况。

    7.3K40

    OpenCV特征点检测------ORB特征

    BRIEF优点在于速度,缺点也相当明显: 1:不具备旋转不变性。 2:对噪声敏感 3:不具备尺度不变性。 ORB就是试图解决上述缺点中12....如何解决旋转不变性: ORB方案中,是采用了FAST作为特征点检测算子。...FAST应用很多了,是出名快,以防有人不知道,请看这里: Sift方案中,特征点主方向是由梯度直方图最大值次大值所在bin对应方向决定。略嫌耗时。...但是由此带来问题是,由于主方向会发生变化,随机点对相关性会比较大,从而降低描述子判别性。解决方案也很直接,采取贪婪,穷举方法,暴力找到相关性较低随机点对。...如何解决对噪声敏感问题: 在前面提到过,最早eccv2010文章中,BRIEF使用是pixel跟pixel大小来构造描述子每一个bit。这样后果就是对噪声敏感。

    46710

    解决Python导入文件时FileNotFoundError问题

    文件名称为 temp.py 要导入文件temp.py同级目录images文件夹下那么应该保证要导入文件 imagesmodel_mnist.png 要跟前面的temp文件同一目录(不满足...,可把imagesmodel_mnist.png移到temp.py同一目录下)或者是提供要导入文件完整目录即写作绝对路径如下: from keras.utils import plot_model...经过学习,发现了解决方案: 解释 没有该文件夹或者该文件,也就是你访问了不存在文件,但其实你访问文件如果不存在,切访问用是w方法法,是会新建文档,所以问题主要是,没有这个文件夹,新建即可...由于你文件打开方式是’w’,也就是文件不存在时就创建文件,所以那个pkl文件(我指的是相对路径中pkl)不存在会自动创建,这不是问题问题就在于那个相对路径,就是那个path是否存在,这个文件夹不存在一样会出问题...以上这篇解决Python导入文件时FileNotFoundError问题就是小编分享给大家全部内容了,希望能给大家一个参考。

    4.9K10

    OpenCV特征点检测——ORB特征

    目录 什么是ORB 如何解决旋转不变性 如何解决对噪声敏感问题 关于尺度不变性 关于计算速度 关于性能 Related posts 什么是ORB ORB是是ORiented Brief简称。...BRIEF优点在于速度,缺点也相当明显: 1:不具备旋转不变性。 2:对噪声敏感 3:不具备尺度不变性。 ORB就是试图解决上述缺点中12....FAST应用很多了,是出名快,以防有人不知道,请看这里: Sift方案中,特征点主方向是由梯度直方图最大值次大值所在bin对应方向决定。略嫌耗时。...如何解决对噪声敏感问题: 在前面提到过,最早eccv2010文章中,BRIEF使用是pixel跟pixel大小来构造描述子每一个bit。这样后果就是对噪声敏感。...cv::Ptr detector = cv::FeatureDetector::create( "SIFT" ); cv::Ptr<cv::DescriptorExtractor

    1.5K70

    Python 自定义包导入问题 打包成exe无法别的电脑运行问题

    说明 每一个包目录下面都会有一个__init__.py文件,这个文件是必须存在,否则,Python就把这个目录当成普通目录(文件夹),而不是一个包。...__init__.py可以是空文件,也可以有Python代码,因为__init__.py本身就是一个模块,而它模块名就是对应包名字。调用包就是执行包下__init__.py文件。...问题描述 一个文件中要引入一个自定义包中模块,出现模块无法导入问题, 此时采取第一种解决方法: 先导入sys模块 然后通过sys.path.append(path)函数来导入自定义模块所在目录 导入自定义模块...上面的解决方法会导致以下问题: 可以本地成功运行,但是打包成exe以后,到别的电脑上无法运行,因为sys.path.append(path)里面的path别的电脑上不一定存在。...第二种解决方法: 不在代码里使用sys.path.append(path),保证代码里不存在本地绝对路径,把要导入自定义包拷贝到site-packages目录下, 然后再打包成exe以后就可以别的电脑上成功运行

    2.6K20

    解决CloudKitElectron中无法登录问题

    toc 最近CloudKit Web端授权页面更新后中使用了CMD模块化东西,因此会检查require是否存在,本意是存在的话就会按照CMD方式加载js模块,但是Electron中默认通过require...来加载electron模块或者npm模块,这样问题就来了,Electron中Cloudkit授权页面就会报错!...解决方案也简单,如果你页面中不需要使用electron提供node能力,自然解决方案就是启动主窗口时候禁用node能力即可,这样通过window.open()之后窗口也会禁用。...//mian.js中 const BrowserWindow = electron.BrowserWindow mainWindow = new BrowserWindow({ width:...能力,这样就不能在main.js中禁用全部窗口node能力,因此就需要单独设置。

    2.8K30

    解决pycharm中opencv-python导入cv2后无法自动补全问题(不用作任何文件上修改)

    发现问题 当我用pip安装好opencv-pyton后,我激动得python项目中导入cv2 就像这样: import cv2 as cv but… 码代码时竟然没有自动补全!!!...于是开始找解决方法 解决问题 查找解决方法, 有的说要将cv2.cp36-win_amd64.pyd文件挪到site-packages下; 有的说要修改_init_.py文件 有的说… 直到我看到...原来真正实现opencv功能cv2模块是cv2/data文件夹下 而cv2下_init_.py文件内描述也很清楚 import importlib from .cv2 import * from...库文件刚刚被添加到项目中时,pycharm会针对这个库文件,构建索引(building index)。然后会显示一个进度条,进度条走完之前,使用这个库中方法确实会出现无法自动提示问题。 ?...总结 到此这篇关于解决pycharm中opencv-python导入cv2后无法自动补全问题(不用作任何文件上修改)文章就介绍到这了,更多相关pycharm opencv-python导入cv2无法自动补全内容请搜索

    4.6K50

    解决VMware 7Windows 7上无法上网问题

    Windows 7上VPC不能安装64位操作系统Linux等,就安装了个VMware 7来解决这个问题,另一个问题出来了虚拟机里头系统无法上网,通过Google找到一些方法,写都不详细,这里记录下最完整配置过程...: 首先打开Windows 7网络共享中心,然后点左边更改适配器设置,你会看到两个由VMware创建虚拟连接,找到VMware Network Adapter VMnet1,记住它连接名称。...然后右击你当前使用中连接(比如我使用是ADSL连接)选择属性,把全部钩都打上,然后在家庭网络连接中选择VMware Network Adapter VMnet1连接名字。就像这样: ?...最后选择虚拟机设置,将Network Adapter设置为Host-Only,如图: ? 好了,这样就可以虚拟机中上网了。...参考文章: 使用VMware WorkstationVirtual Network Editor管理虚拟网络 http://www.searchsv.com.cn/showContent_21136.

    2.5K60

    视觉里程计原理_视觉定位里程计辅助定位

    这里Tcw表示对应帧相机坐标系->世界坐标系变换;比如:x1处看到了路标点p1,x2处也看到了路标点p1(当然是通过特征匹配才知道再次看到)考虑以下两种情况: 1> x1对应第一帧,x2对应第二帧..._1对应是世界坐标系下3D点(在这种情形,第一帧相机坐标系也就是世界坐标系,所以第一帧相机坐标系下3D点), points2d_2是第二帧像素点(设第二帧对应3D路标点(第二帧相机坐标系下)为:...……最后通过opencv中API solvePNPransac();求出R|t 其实是Tcw; Tcw指的是:当前帧与世界坐标系之间变换; Trw指的是:参考帧与世界坐标系之间变换。...138 Ptr detector = ORB::create(1000); 139 Ptr descriptor = ORB...::create(); 140 // use this if you are in OpenCV2 141 // Ptr detector = FeatureDetector

    72030

    解决python中进行CGI编程时无法响应问题

    参考链接: Python中CGI编程 【时间】2018.11.06  【题目】解决python中进行CGI编程时无法响应问题  概述  阅读《python编程》第一章CGI编程部分时,出现了无法响应问题...,最后参考 解决问题,在此做个记录  一、《python编程》中原代码  1、HTML代码-----cgi101.html  Interactive Page' % cgi.escape(form['user'].value))  二、出现问题  运行HTML代码,文本中输入内容,提交后出现404错误。...如下:  运行:  出现问题1:  或者直接返回了cgi101.py源代码:  三、解决方法  解决方法分两步,一是开启电脑本机服务器服务,二是修改action响应地址  1、开启电脑本机http...2、修改action响应地址  HTML代码中action部分表示请求响应地址,应改为action=

    1.2K30

    mysqli扩展无法PHP7下升级问题解决

    前言 这几天在想部署一个OAuth服务,找了一个PHP开源实现,由于要求PHP版本比较高,就打算在自己ECS上(PHP7.1)先测试下,没想到遇到了一些问题。...首先发现mysqli扩展没有装(mysql扩展PHP7中已经废弃了),原来PHP7是使用ondrej/php源安装,可运行 apt-cache search php7 | grep mysql 居然发现没有任何...为了验证这一点,我同事Ubuntu16下装了ondrej/php包,进行测试: $ apt-cache policy php7.3 php7.3: Installed: (none) Candidate...验证ondrej/php不支持Ubuntu14后,我找了一个PHP PPA包serp2002/php7-backport,安装之前我先卸载了ondrej/php包: $ LC_ALL=C.UTF-8...总结 以上就是这篇文章全部内容了,希望本文内容对大家学习或者工作具有一定参考学习价值,谢谢大家对ZaLou.Cn支持。

    1.3K21
    领券