【python】由一组对应特征点确定一种变换矩阵

2025-04-24 23:13:17

1、先给出两组点作为对应的特征点,每一组各有五个点。point1=np.uint8(np.random.random((5,2))*10)point2=np.uint8(np.random.random((5,2))*10)

【python】由一组对应特征点确定一种变换矩阵

2、计算每一组特征点的重心坐标:c1=np.mean(point1,ax坡纠课柩is=0)c2=np.mean(point2,axis=0)

【python】由一组对应特征点确定一种变换矩阵

3、计算每组特征点坐标的标准差:s1 = np.std(point1)s2 = np.std(point2)

【python】由一组对应特征点确定一种变换矩阵

4、把每组特征点的重心放到原点位置上,并且坐标值除以标准差。p1=(point1-c1)/s1p2=(point2-c2)/s2

【python】由一组对应特征点确定一种变换矩阵

5、把p1转置,并和p2进行矩阵乘法:A=np.matrix(p1.T)*np.matrix(p2)

【python】由一组对应特征点确定一种变换矩阵

6、对矩阵A进行奇异值分解:u,v,w=np.linalg.svd(A)

【python】由一组对应特征点确定一种变换矩阵

7、构造变换矩扃渚释夭阵:R = (u*w).TM=np.vstack([np.hstack(((s2 / s1) * 伊怕锱鳏R, c2.T - (s2 / s1) * R * c1.T)), np.matrix([0., 0., 1.])])

【python】由一组对应特征点确定一种变换矩阵
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
相关推荐
  • 阅读量:83
  • 阅读量:27
  • 阅读量:89
  • 阅读量:78
  • 阅读量:87
  • 猜你喜欢