Opencv功能描述给定坐标

时间:2014-05-04 12:12:24

标签: c++ opencv feature-detection

我遇到了与哈里斯探测器找到的兴趣点相匹配的问题。 我没有在opencv中使用harrisDetector的内置函数。相反,我写了算法 所以,我最终得到了兴趣点,但我不知道如何使用opencv内置描述符来描述这些x,y坐标集。

有谁知道如何描述图像给定坐标集的这些兴趣点?

以下是我的尝试:

  1. 我将我的兴趣点转换为keyPoints

    keyPoints.push_back(KeyPoint(InterestPoints[i].x, InterestPoints[i].y, 0.0));
    
  2. 使用冲浪描述符

    SurfDescriptorExtractor extractor;
    Mat descriptors_1;
    extractor.compute(src_orig, keyPoints, descriptors_1);
    
  3. 但它对我没什么帮助。每次我运行代码时,它都会重置我的varible keyPoints并且什么都不给我。

    感谢您提出任何意见。

1 个答案:

答案 0 :(得分:2)

来自opencv doc

  

删除无法计算描述符的关键点。

表示如果关键点全部被移除,那么也应该没有描述符。即SURF提取器无法描述您的关键点。

你可以尝试声明大小不同于0的关键点,也许是角度,八度和响应 - 不仅是逐点的;并查看是否有任何变化。结构关键点here

提取这些关键点的描述符是一个完全不同于检测的过程。提取编码该特征的属性,如其方向,与邻居的对比度,金字塔等级等,以便可以与来自不同图像,不同比例和方向的其他关键点进行比较。简而言之,仅将此功能声明为一个点可能还不够。