CloudCompare 技巧三 点云变换

编程入门 行业动态 更新时间:2024-10-25 01:22:07

CloudCompare <a href=https://www.elefans.com/category/jswz/34/1767080.html style=技巧三 点云变换"/>

CloudCompare 技巧三 点云变换

 30、点云平移

CloudCompare点云网格处理软件 8——点云网格距离测量_哔哩哔哩_bilibili

恢复到之前的位置:

 

 31、通过矩阵来旋转 

 

 32、通过X\Y\Z轴来旋转 

 

恢复后的点云

 将Z的哪里改成6:

 然后将Z哪里改成2,看看区别:

从上面的结论可以看出: 

 

xyz 旋转:

恢复到前面的状态

 

 33、欧拉角旋转

// 计算两个向量之间的罗德里格斯 矩阵 欧拉角
int  Algorithm::getMatrix_2_Vectors(Eigen::Vector3d &v1, Eigen::Vector3d &v2, Eigen::Matrix3d &Matrix3d, Eigen::Vector3d &euler)
{//  计算矩阵Matrix3d = Eigen::Quaterniond::FromTwoVectors(v1, v2).toRotationMatrix();// 两个向量-》矩阵-》欧拉角(x y z )euler = Eigen::Quaterniond::FromTwoVectors(v1, v2).toRotationMatrix().eulerAngles(0,1,2);return 0;
}

34、点云绕任意点旋转


int Algorithm::RotateAnypoint(pcl::PointCloud<pcl::PointXYZ>::Ptr &cloud,Eigen::Vector4f  &center,Eigen::Vector4f & angle,int axis,Eigen::Vector3f &roate_axis,pcl::PointCloud<pcl::PointXYZ>::Ptr &out_cloud)
{if(cloud->size()<1){return EXIT_FAILURE;}Eigen::Matrix4f T0 = Eigen::Matrix4f::Identity();Eigen::Matrix4f T1 = Eigen::Matrix4f::Identity();T0.col(3).head<3>()=-center.head(3);cout<<"T0     "<<T0<<endl;T1.col(3).head<3>()=center.head(3);// 定义旋转矩阵Eigen::Isometry3f  T=Eigen::Isometry3f::Identity();if(axis==1) // 1 0 0{Eigen::AngleAxisf  M(angle[0], Eigen::Vector3f::UnitX());	  // 轴角表达公式T.rotate(M);}else if(axis==2)   // 010{Eigen::AngleAxisf M(angle[1], Eigen::Vector3f::UnitY());  // 轴角表达公式T.rotate(M);}else  if(axis==3) // 0 0 1{Eigen::AngleAxisf M(angle[2], Eigen::Vector3f::UnitZ());	  // 轴角表达公式T.rotate(M);}else  if(axis==4) // 任一轴{Eigen::AngleAxisf  M(angle[3],Eigen::Vector3f(0, 1, 1));T.rotate(M);}else  if(axis==5){Eigen::AngleAxisf m_x(angle[0], Eigen::Vector3f::UnitZ());Eigen::AngleAxisf m_y(angle[1], Eigen::Vector3f::UnitZ());Eigen::AngleAxisf m_z(angle[2], Eigen::Vector3f::UnitZ());T.rotate(m_x*m_y*m_z);}Eigen::Matrix4f  finanlTransform=T1*T.matrix()*T0;cout<<"finanlTransform     "<<finanlTransform<<endl;pcl::transformPointCloud(*cloud,*out_cloud,finanlTransform);if(out_cloud->size()<1){return EXIT_FAILURE;}return  0;}

35、放缩

更多推荐

CloudCompare 技巧三 点云变换

本文发布于:2023-11-15 21:28:21,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1606631.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:技巧   CloudCompare

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!