从图像中的绝对点创建点的相对网格

时间:2016-07-12 17:16:45

标签: python image-processing camera-calibration

示例目标:
enter image description here
资料来源:zone.ni.com

从上图所示的校准目标中,我发现了目标上每个圆圈的中心。我有每个圆心的中心坐标(例如(583,120))。现在,我需要从这些圈子中心创建一个网格。因此第一个圆心将是(0,0),第一个圆心的圆心将是(0,1)< - (row,col格式为python),圆心位于第一个圆心之下将是(1,0)。我遇到的问题是校准目标可能在任何方向和角度上倾斜,因此圆圈的中心将不在图像中的相同行或相同列中(例如,中心圆1可能位于(100,150)和中心圆2虽然紧挨着它(115,200),但它们不在图像的同一行中。实际校准目标具有相等距离的圆,但是由于校准目标相对于传感器的角度,它们在图像中看起来不会相等。我在python中编写这段代码。如果有人知道如何解决这个问题(不是要找人编写代码,只是向我发送正确的方向),请告诉我。

编辑:我不打算做仿射变换。我试图找到图像中的点与现实世界中的目标的点对应关系。

1 个答案:

答案 0 :(得分:1)

你正在使用openCV吗?在任何情况下,您可能想要查看的主题是Affine Transforms虽然链接是特定于Python的OpenCv,但主题本身并非如此。

实际上,您只需使用4个点即可完成变换。这些点可以通过检测矩形边界框来获得,这是另一个类似的SO问题OpenCV C++/Obj-C: Detecting a sheet of paper / Square Detection它在C ++中但是这些想法是相似的

希望这有帮助