根据documentation cv2.estimateRigidTransform
具有参数fullAffine
:
fullAffine –如果为true,则该函数找到最佳仿射 没有其他限制(6个自由度)的变换。 否则,选择的转换类别仅限于 平移,旋转和均匀缩放(5度)的组合 自由)。
我不了解5个自由度的含义,因为我了解平移,旋转和均匀缩放可以使用4个变量完成(此处有更多信息,http://nghiaho.com/?p=2208)
uniform scaling
表示x和y比例将相同吗?我尝试过
print('cv2.__version__', cv2.__version__)
m = cv2.estimateRigidTransform(_prev_pts, _curr_pts, fullAffine=False)
print('m.shape', m.shape)
print('m',m)
输出:
cv2.__version__ 3.4.3
m.shape (2, 3)
m [[ 1.00165841e+00 -2.10742695e-04 4.28874117e+00]
[ 2.10742695e-04 1.00165841e+00 1.23242652e+00]]
输出看起来像文档中所述(4个唯一值):
m
分解为旋转,缩放和平移矩阵,即m = R*T*S
?