为啥不可以再opencv3中使用SurfFeatureDetector

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥不可以再opencv3中使用SurfFeatureDetector相关的知识,希望对你有一定的参考价值。

参考技术A OpenCV 中和 2D 特征检测相关的算法的头文件位于opencv\modules\features2d\include\opencv2\features2d.hpp,除SIFT、SURF以外的特征。opencv\modules\nonfree\include\opencv2\nonfree\features2d.hpp,只包含SIFT、SURF这两个受专利保护的特征,因此不是免费的(nonfree)。我们来看具体的类DescriptorExtractor 的子类都是描述子提取器,包含FREAKOpponentColorDescriptorExtractorBriefDescriptorExtractorFeatureDetector 的子类都是特征检测器,包含MSERStarDetector,又名 StarFeatureDetectorFastFeatureDetectorGFTTDetector,又名 GoodFeaturesToTrackDetectorSimpleBlobDetectorDenseFeatureDetectorFeatureDetector 还提供一系列特殊的适配器子类,用于增强或加速之前的 FeatureDetector 类GridAdaptedFeatureDetectorPyramidAdaptedFeatureDetectorAdjusterAdapterDynamicAdaptedFeatureDetectorFastAdjusterStarAdjusterSurfAdjusterFeature2D 的子类既是 FeatureDetector,又是 DescriptorExtractor,包含BRISKORBSIFTSURF希望这个回答可以授之以渔。 参考技术B 3版本的Surf等算法移到了opencv_contrib的包里面,需要下载后自己编译

为啥在 OpenCv 中调整图像大小会降低相机校准的重投影误差?

【中文标题】为啥在 OpenCv 中调整图像大小会降低相机校准的重投影误差?【英文标题】:Why resizing an image in OpenCv decreases the reprojection error of a camera calibration?为什么在 OpenCv 中调整图像大小会降低相机校准的重投影误差? 【发布时间】:2016-05-12 22:58:56 【问题描述】:

我正在使用 OpenCv 校准相机。首先,我使用的是原始分辨率,但后来我意识到,如果我调整图像大小(下采样),我可以得到更低的重投影错误。为什么会发生这种情况?

【问题讨论】:

【参考方案1】:

重投影误差是投影的 3d 点在 2d 图像平面上的平均误差。因此,它的单位是像素。

对图像进行下采样的后果是下采样重投影错误。实际误差仍然相同,但“像素单元”不再对应图像传感器上相同的空间距离。

为了获得可比较的重投影误差值,可以将误差表示为传感器上的距离。

希望这个答案对你有所帮助。

【讨论】:

以上是关于为啥不可以再opencv3中使用SurfFeatureDetector的主要内容,如果未能解决你的问题,请参考以下文章

图像增强︱window7+opencv3.2+keras/theano简单应用(函数解读)

为啥 OpenCV 3.0 beta 中的对象检测删除了尺度级联和精明修剪功能?

为啥不能再where语句中直接使用聚合函数

为啥我在 opencv 3.0 beta 中找不到 balanceWhite?

opencv中自带的dll和lib 为啥不能直接使用?

带有 Python 3 的 opencv3,imshow() 不显示图像