我有两个网格,它们代表两个不同的头,就像在几何上不同,但是具有相同的拓扑结构。另外,这些点的子集代表了人脸上相同的特征,即鼻尖、下巴、口角等,它们被用于来自于修改网格的拓扑转移算法。
现在,虽然拓扑匹配,如两个网格中的点数相同,并且点以相同的方式连接,但物体在空间上并不是最优的。
我正在寻找优化步骤的名称,它将更好地对齐两个网格,以及这个概念在CGAL中是否已经存在。
这两个网格之间的距离可以仅仅是匹配点之间距离的总和,或者是一些更微妙的东西,它可以使更多的点在前面步骤中使用的地标点附近。任何线性变换都是可接受的,但在这种情况下更有意义的是平移、旋转和缩放。
文件是这里你有兴趣看看
发布于 2022-02-18 21:05:49
我找到了一种方法--不是在CGAL,而是在OpenCV中。
功能是: estimateAffine3D
estimateAffine3D() int cv::估值仿射3D( InputArray src,InputArray dst,OutputArray out,OutputArray inliers,double ransacThreshold = 3,double置信度= 0.99 )
计算两个三维点集之间的最优仿射变换。
它计算R和T,使得P‘= RxP +T,并且每个集合中匹配点之间的距离被最小化。R旋转矩阵,T平移矩阵。
https://stackoverflow.com/questions/70840889
复制相似问题