1

我正在尝试在 openCV 中使用 cv2.getAffineTransform(src,dst) 函数,但它崩溃了,因为我的输入是包含 125 对 x,y 坐标的数组,而 getAffineTransform 希望其输入具有三列。我可以将一行充满零的行连接到我的数组上,还是我应该做一个特殊的转换?

4

1 回答 1

3

不,我认为还有其他问题。文档说: cv2.getAffineTransform 从三对对应点计算仿射变换。

问题是你给它 125 对点。它只需要 3 对点对应关系。这当然是求解线性方程组所需的对应数量。如果您希望从嘈杂的对应中估计仿射变换,那么您将需要使用加权最小二乘法或 RANSAC 之类的方法。要使用预先打包的算法从噪声数据估计仿射变换,看起来 cv2.estimateRigidTransform 可能会设置 fullAffine = True

于 2013-11-08T20:27:48.147 回答