【问题标题】:How to improve features detection in opencv如何改进opencv中的特征检测
【发布时间】:2013-10-22 02:09:53
【问题描述】:

我正在做一个项目,我需要使用 opencv 检测图像上的特征。

我正在使用

SURF detector;
SURF extractor;
BFMatcher matcher;

用于检测、提取和匹配点。它适用于某些图像,但不适用于其他一些图像。

例如,系统在此图像上失败:

显然,这张图片有一些纹理,特征检测器应该检测到它们,但没有检测到特征,因此没有生成匹配。

如何改进此特征检测?

我可以为此使用任何图像处理技术吗?

我可以使用任何其他检测器来解决这个问题吗?

【问题讨论】:

    标签: c++ opencv image-processing feature-detection feature-extraction


    【解决方案1】:

    我没用过SURF,但是用过ORB算法。为了改进特征检测,我尝试了几个过滤器。我获得的最佳结果是结合使用滤波器均衡直方图和快速傅里叶变换。

    均衡直方图过滤器:它增强了无意义的细节并隐藏了重要但小的高对比度像素,这些像素被假定为噪声。直方图均衡采用单调非线性映射,重新分配输入图像中像素的强度值,使输出图像包含均匀分布的强度(即平坦直方图)

    快速傅里叶变换滤波器:它将图像分解为其正弦和余弦分量。该滤波器执行变换的输出表示频域中的图像,而输入图像是空间域等效的。在傅里叶域图像中,每个点代表空间域图像中包含的特定频率。

    我不确定,但我认为 OpenCV 中没有 FFT 过滤器,因此您可能需要使用另一个库。

    编辑1: 我有一个代码,但不幸的是它是在 Java 中而不是在 C++ 中。但是,如果您将应用相同的过滤器,结果将是相同的。 Here 是 Eqaulize Histogram 的文档。为了应用 FFT 过滤器,我使用了 ImageJ,它是 Java 库。你可以尝试找到类似这个库的东西,比如this one。

    Edit2:ImageJ 代码应用 FFT 过滤器

    import ij.plugin.filter.FFTFilter;
    ...
    FFTFilter fft = new FFTFilter();
    ImageProcessor ip = new ColorProcessor(bufImage);
    ImagePlus imgPlus = new ImagePlus();
    
    imgPlus.setImage(bufImage);
    
    try{
       fft.setup(null, imgPlus); 
    }catch(Exception e){e.printStackTrace();}
    fft.run(ip);
    

    Edit3:以下是应用上述过滤器前后检测到的特征示例。

    1. 没有任何过滤器的冲浪:
    2. 带有 EH + FFT 的 SURF:
    3. 带有 EH + FFT 的 ORB:

    正如你在 SURF 算法中看到的那样,有太多的冗余信息来执行匹配。所以我建议你使用ORB算法。 ORB的优点还在于它可以免费使用,图像旋转和缩放高效稳定。您还可以在应用 EH+FFT 之前对图像进行平滑处理,以仅检测角上的特征。

    Edit4:我还发现了有关 FFT 的有用信息。根据this topic FFT 是 DFT 的有效实现。描述为here。也可能是your最近的四个问题的答案。

    【讨论】:

    • 谢谢,你能分享一些代码吗?例如如何对输入图像进行直方图均衡?还是使用 FFT?
    • 我在Edit部分留下了一些cmets
    • 谢谢,我使用了直方图均衡器,它似乎有很大的不同。如何使用 FFT?您是否从图像中过滤低频?例如,您是否要进入 fft 域,移除一些频率并返回到空间域?您要移除哪个频率?
    • 结果图像应该在空间域中表示。关于我要删除的频率,我不确定。我使用了 ImageJ 的默认值。我将添加一些我如何使用 FFT 的 java 代码。
    • 感谢有关 FFT 的信息,但我怀疑它是 FFT,因为它们的计算方式与 FFT 的计算方式不同。它看起来更像是某种金字塔计算。
    猜你喜欢
    • 2013-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-11
    • 2011-11-06
    • 2012-02-26
    • 2012-12-24
    • 2013-03-01
    相关资源
    最近更新 更多