我遇到了与哈里斯探测器找到的兴趣点相匹配的问题。 我没有在opencv中使用harrisDetector的内置函数。相反,我写了算法 所以,我最终得到了兴趣点,但我不知道如何使用opencv内置描述符来描述这些x,y坐标集。
有谁知道如何描述图像给定坐标集的这些兴趣点?
以下是我的尝试:
我将我的兴趣点转换为keyPoints
keyPoints.push_back(KeyPoint(InterestPoints[i].x, InterestPoints[i].y, 0.0));
使用冲浪描述符
SurfDescriptorExtractor extractor;
Mat descriptors_1;
extractor.compute(src_orig, keyPoints, descriptors_1);
但它对我没什么帮助。每次我运行代码时,它都会重置我的varible keyPoints并且什么都不给我。
感谢您提出任何意见。
答案 0 :(得分:2)
来自opencv doc
删除无法计算描述符的关键点。
表示如果关键点全部被移除,那么也应该没有描述符。即SURF提取器无法描述您的关键点。
你可以尝试声明大小不同于0的关键点,也许是角度,八度和响应 - 不仅是逐点的;并查看是否有任何变化。结构关键点here
提取这些关键点的描述符是一个完全不同于检测的过程。提取编码该特征的属性,如其方向,与邻居的对比度,金字塔等级等,以便可以与来自不同图像,不同比例和方向的其他关键点进行比较。简而言之,仅将此功能声明为一个点可能还不够。