当前位置: 首页 > news >正文

正规网站建设套餐报价影楼网站建设

正规网站建设套餐报价,影楼网站建设,徐州关键词优化如何,做企鹅号的视频素材网站之前研究了二维点的仿射变换,用解矩阵的方式求解了两组二维点之间的变换矩阵。 学习了下SVD,看到可以用SVD求解两组多维点之间的欧式变换矩阵,当然也是个最优化问题。 这里的变换只有平移和旋转,没有缩放。 一、先说结论&#…

之前研究了二维点的仿射变换,用解矩阵的方式求解了两组二维点之间的变换矩阵。

学习了下SVD,看到可以用SVD求解两组多维点之间的欧式变换矩阵,当然也是个最优化问题。

这里的变换只有平移和旋转,没有缩放。

一、先说结论:

现在有两组点(2d,3d,或者多维都可以),

P=\left \{ {p_{1},...p_{n}}\right \},P^{'}=\left \{ {p^{'}_{1},...p^{'}_{n}}\right \},

 需要找到R和t,使得

p_{i}=Rp^{'}_{i}+t

一般没有完美解,需要找到最优解R和t,使得P'变换后的点和P误差最小。

操作步骤:

1,,求两组点质心位置p,p^{'},得到两组点去质心坐标

q_{i}=p_{i}-p,q^{'}_{i}=p^{'}_{i}-p^{'}

2,得到矩阵W

W=\sum_{i=1}^{n}q_{i}q^{'T}_{i}

3,对W进行奇异值分解

W=U\Sigma V^{T}

4.得到最优R和T

R=VU^{T}

T=p-Rp^{'}

二、用halcon代码来实现下

举例测试两组点P和Q

PX := [0.2,0.4,0.2,0.3]
PY := [0.4,0.6,0.8,0.6]
PZ := [0.6,0.8,0.6,0.5]
QX := [0.25,0.44,0.61,0.3]
QY := [0.32,0.56,0.82,0.4]
QZ := [0.4,0.18,0.6,0.51]

halcon代码实现如下

*两组3d点P和Q,每组4个点PX := [0.2,0.4,0.2,0.3]
PY := [0.4,0.6,0.8,0.6]
PZ := [0.6,0.8,0.6,0.5]
QX := [0.25,0.44,0.61,0.3]
QY := [0.32,0.56,0.82,0.4]
QZ := [0.4,0.18,0.6,0.51]*对P和Q去质心化处理
create_matrix (3, |PX|, [PX,PY,PZ], P)
mean_matrix (P, 'rows', PMean)
create_matrix(1,|PX|,1,Ones)
mult_matrix (PMean, Ones, 'AB', PSub)
sub_matrix(P,PSub,PShift)create_matrix(3,|QX|,[QX,QY,QZ],Q)
mean_matrix(Q,'rows', QMean)
create_matrix (1, |QX|, 0, Ones)
mult_matrix (QMean, Ones, 'AB', QSub)
sub_matrix (Q, QSub, QShift)*得到步骤2里的W矩阵,这里是3维点,左右W是个3*3矩阵
create_matrix (3, 3, 0, W)
for Index := 0 to |PX|-1 by 1get_sub_matrix (PShift, 0, Index, 3, 1, PVec)get_sub_matrix (QShift, 0, Index, 3, 1, QVec)transpose_matrix_mod (QVec)mult_matrix (PVec, QVec, 'AB', PQ)add_matrix_mod (W, PQ)    
endfor*对W进行svd分解
svd_matrix (W, 'full', 'both', U, S, V)*计算R
transpose_matrix_mod(U)
mult_matrix (V, U, 'AB', R)*计算R的行列式是否为1
determinant_matrix (R, 'general', Value)
if (Value < 0)get_value_matrix (V, [0,1,2], [2,2,2], Value1)set_value_matrix (V, [0,1,2], [2,2,2], [-Value1[0],-Value1[1],-Value1[2]])mult_matrix (V, U, 'AB', R)
endif*计算t
mult_matrix (R, PMean, 'AB', RPMean)
sub_matrix(QMean,RPMean,t)*得到最后的变换矩阵3*4
create_matrix(3,4,0,HomMat3DID)
set_sub_matrix (HomMat3DID, R, 0, 0)
set_sub_matrix(HomMat3DID, t, 0, 3)
get_full_matrix (HomMat3DID, HomMat3D)

得到的变换矩阵为

[-0.65053, 0.436583, 0.621455, -0.0714635, 0.519911, 0.852471, -0.0546402, -0.095308, -0.553627, 0.287556, -0.781542, 0.890677]

三、证明过程

    证明过程内容有点多,晚点整理整理再写

参考文章

三维重建(4)之SVD求解三维变换矩阵Rt(旋转+平移)_svd分解求旋转平移矩阵_明月醉窗台的博客-CSDN博客

使用SVD来求解优化问题最优值 - 知乎

http://www.yayakq.cn/news/508579/

相关文章:

  • 做网站时怎么让边框细一点wordpress 增加备案
  • 网站除了做流量还需要什么软件吗如何建立游戏网站
  • 做网站设计抬头网站建设需要做的事情
  • 东莞做营销型网站的汉阳网站建设鄂icp
  • 电商网站设计制作昆明seo博客
  • 石家庄免费网站设计传奇发布网站排行
  • 3D特效做首页的网站天津滨海新区属于哪个区
  • 做网站fjfzwl开发游戏学什么专业
  • 网站建设:博采网络手机百度如何发布作品
  • 怎样修改手机网站首页制作网站哪家便宜
  • 自己做网站如何放置在服务器中2018年怎样做淘宝客网站
  • 网站建设的结构旅游网站排名查询
  • wordpress 调用缩略图合肥seo网站管理
  • wordpress 页面伪静态成都seo正规优化
  • 舟山网站建设优化浙江seo公司
  • 萍乡做网站的公司有哪些wordpress付费内容
  • 做的比较好的电商网站做网站如何分类产品
  • 品牌网站建设网站网址最新连接查询
  • 菜鸟怎么做网站协和医院网站建设目标
  • 手机导航网站模板wordpress页面下
  • 网站做友链有行业要求吗标准型网站建设
  • 购物网站做兼职WordPress的分類顯示插件
  • 网站建设微信公众号小程序制作怎么在网络上做推广
  • 网站建设 工单西部数据网站管理助手
  • 网站首页广告图片伸缩代码又关闭安徽住房建设厅官网信息查询
  • 需要做网站的企业资源NextApp wordpress
  • 网站建设工作室 杭州网站建设公司一站通系统简单
  • 怎么建手机网站平台织梦网站怎么做seo
  • 工厂的网站在哪里做的商贸公司网站建设方案
  • 快速搭建网站视频手机网站切图