OpenCV:哪种技术可以将调整大小后的图像中的点返回到原始图像大小?

时间:2012-07-30 06:01:57

标签: opencv resize

我使用OpenCV的“GoodFeatureToTrack”来查找功能并在第二张图像上跟踪它们。

为了加快这个过程,我使用双线性插值将图像缩小4倍,从4000x2000到1000x500。

KLT在调整大小的图像上完美匹配点数。但我希望在原始图像大小中得到点位置。

我尝试将调整大小后的图像上的特征位置乘以4(对于原始大小的图像)。在我看来,在相乘后,调整大小的图像上的相应特征在原始图像大小中不再对应。

我是否需要插值(?)或者将已调整大小的图像中的点投影回原始图像大小?这样调整大小的图像中的相应特征仍然与原始图像大小匹配。

非常感谢。

请原谅我的英语不好。

1 个答案:

答案 0 :(得分:3)

缩小规模将导致精度下降。然而,这种损失通常很小,以至于无法检测到。如果你的点远离它们的正确位置,则可能是乘法步骤是错误的。

你在那里写的公式是正确的,即

pointInBigImage = scale*pointInSmallImage

在您的情况下,比例为4。

您应该打印两张图像中的点,并将它们并排显示。然后,在视觉上比较两个图像中的位置。通过这种方式,您将看到它是错误还是精度损失。

最后,为了提高精度,你可以使用cornerSubpix - 这是OpenCV中一个以子像素精度提取角落位置的函数 - 所以当你将它们乘以原始图像时,精度应该更好