从上图所示的校准目标中,我发现了目标上每个圆圈的中心。我有每个圆心的中心坐标(例如(583,120))。现在,我需要从这些圈子中心创建一个网格。因此第一个圆心将是(0,0),第一个圆心的圆心将是(0,1)< - (row,col格式为python),圆心位于第一个圆心之下将是(1,0)。我遇到的问题是校准目标可能在任何方向和角度上倾斜,因此圆圈的中心将不在图像中的相同行或相同列中(例如,中心圆1可能位于(100,150)和中心圆2虽然紧挨着它(115,200),但它们不在图像的同一行中。实际校准目标具有相等距离的圆,但是由于校准目标相对于传感器的角度,它们在图像中看起来不会相等。我在python中编写这段代码。如果有人知道如何解决这个问题(不是要找人编写代码,只是向我发送正确的方向),请告诉我。
编辑:我不打算做仿射变换。我试图找到图像中的点与现实世界中的目标的点对应关系。答案 0 :(得分:1)
实际上,您只需使用4个点即可完成变换。这些点可以通过检测矩形边界框来获得,这是另一个类似的SO问题OpenCV C++/Obj-C: Detecting a sheet of paper / Square Detection它在C ++中但是这些想法是相似的
希望这有帮助