我正在尝试在openCV中使用cv2.getAffineTransform(src,dst)函数,但是由于我的输入是包含125对x,y坐标的数组而getAffineTransform希望其输入具有三列,因此它崩溃了。我可以将一整行零填充到我的数组上,还是应该做一个特殊的转换?
最佳答案
不,我认为还有其他问题。文件说:cv2.getAffineTransform从三对对应点计算仿射变换。
问题是您给它125对积分。它只需要3对点的对应关系。当然,这是求解线性方程组所需的对应关系数。如果您想从嘈杂的对应关系中估算出仿射变换,则需要使用加权最小二乘或RANSAC之类的方法。要使用预打包的算法从嘈杂的数据估计仿射变换,它看起来像cv2.estimateRigidTransform可能会起作用,设置fullAffine = True