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

 时间:2026-04-21 15:07:06

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,axis=0)

c2=np.mean(point2,axis=0)

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

3、计算每组特征点坐标的标准差:

s1 = np.std(point1)

s2 = np.std(point2)

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

4、把每组特征点的重心放到原点位置上,并且坐标值除以标准差。

p1=(point1-c1)/s1

p2=(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).T

M=np.vstack([np.hstack(((s2 / s1) * R,

                      c2.T - (s2 / s1) * R * c1.T)),

                        np.matrix([0., 0., 1.])])

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

  • fopen函数的用法
  • vmware怎么卸载
  • opencv如何卸载干净
  • TeXLive2021安装方法
  • 如何给python安装图像处理库opencv?
  • 热门搜索
    榆林旅游景点 西安旅游攻略 孕妇可以吃龙须菜吗 衡水学院怎么样 怎么取消qq空间 肚脐眼里面的脏东西可以清理吗 河北外国语学院怎么样 孕妇可以喝茶吗 word里面怎么打勾 营业外支出怎么结转