生活百科知识

经验知识首页 > 小吃 > 详细经验讲解内容页

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

关于花木兰【python】由一组对应特征点确定一种变换矩阵,期待您的经验分享,滴水之恩,来日我当涌泉相报 !
无情天魔精致 2019-01-16 16:03:35 25702人看过 分享经验到微博

更新:2024-03-02 07:29:37精品经验

来自头条百科https://www.baike.com/的优秀用户无情天魔精致,于2019-01-16在生活百科知识平台总结分享了一篇关于“【python】由一组对应特征点确定一种变换矩阵非诚勿扰”的经验,非常感谢无情天魔精致的辛苦付出,他总结的解决技巧方法及常用办法如下:

在使用特征点进行图像变形的时候,我们需要算出一个最佳的变换矩阵,本文,学习一下网上牛人写出的算法。

工具/原料

电脑pythonnumpy模块

方法/步骤

1/7分步阅读

先给出两组点作为对应的特征点,每一组各有五个点。

point1=np.uint8(np.random.random((5,2))*10)

point2=np.uint8(np.random.random((5,2))*10)

[图]2/7

计算每一组特征点的重心坐标:

c1=np.mean(point1,axis=0)

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

[图]3/7

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

s1 = np.std(point1)

s2 = np.std(point2)

[图]4/7

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

p1=(point1-c1)/s1

p2=(point2-c2)/s2

[图]5/7

把p1转置,并和p2进行矩阵乘法:

A=np.matrix(p1.T)*np.matrix(p2)

[图]6/7

对矩阵A进行奇异值分解:

u,v,w=np.linalg.svd(A)

[图]7/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.])])

[图]

编辑于2019-01-16,内容仅供参考并受版权保护

经验备注

我发现了这篇经验很有用:你也认同《【python】由一组对应特征点确定一种变换矩阵》的经验分享有价值,就请和朋友们一起分享吧。另外,【python】由一组对应特征点确定一种变换矩阵的经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。经验知识实用生活指南-解决你所有的生活难题!未经许可,谢绝转载。

本文网址:https://www.5058.cn/article/90808022364b07fd90c80f4c.html

下一篇