我在OpenCV中检测到图像的关键点时遇到问题。 如果我有一个SIFT探测器,当它检测到一个图像时,它会检索1000个关键点,但如果我将图像分成两个"子图像",并且foreach SIFT检测到关键点,则总和不是1000,但是减。 对我来说,总关键点数量可能不同但不会太多! 感谢
答案 0 :(得分:1)
这不是一个真正的问题,但显然问题的核心是:
为什么分离的两个图像具有不同数量的SIFT关键点(通常更少),而不是它们连接成一个图像?
基本答案是功能可能很大,并且可以靠近两个子图像的边界。如果它们被拆分,则这些功能不再存在。实际上,不应期望SIFT产生相同数量的关键点。如果你认为特征严格地作为角落,那么肯定---你应该得到大致相同的数量。但有些功能可以通过渐变,粗糙" blob"等来分割图像轻松切割,因此拆分图像可以删除这些功能,并且可以类似地复制其他功能。
您通常可以通过仅检查两个子图像边界内的特征来验证这一点。如果删除靠近图像边缘的要素,并仅检查组合图像的相同空间中的要素,则应在两者中看到相似数量的要素。
想象一下,如果您将图像分割到极端的过程。图像中通常有一个批次的SIFT关键点。如果你将它分解为大量的2x2图像,你认为你得到的关键点数量是否相同?当然不是,因为2x2图像没有足够的信息来重建与完整图像相同的所有特征。