1. 为了对点云进行旋转操作,达到各点云之间不对齐的效果,找到了生成点云绕任意轴旋转的矩阵的代码。
    链接: https://blog.csdn.net/u010848251/article/details/56679649?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-8.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-8.control.
#include <Eigen/Core>
#include<iostream>
#include<vector>// Returns the rotation matrix around a vector  placed at a point , rotate by angle t
Eigen::Matrix4f rot_mat(const Eigen::Vector3f& point, const Eigen::Vector3f& vector, const float t)
{float u = vector(0);float v = vector(1);float w = vector(2);float a = point(0);float b = point(1);float c = point(2);Eigen::Matrix4f matrix;std::cout << float(cos(t))<<std::endl;matrix<<u*u + (v*v + w*w)*cos(t), u*v*(1 - cos(t)) - w*sin(t), u*w*(1 - cos(t)) + v*sin(t), (a*(v*v + w*w) - u*(b*v + c*w))*(1 - cos(t)) + (b*w - c*v)*sin(t),u*v*(1 - cos(t)) + w*sin(t), v*v + (u*u + w*w)*cos(t), v*w*(1 - cos(t)) - u*sin(t), (b*(u*u + w*w) - v*(a*u + c*w))*(1 - cos(t)) + (c*u - a*w)*sin(t),u*w*(1 - cos(t)) - v*sin(t), v*w*(1 - cos(t)) + u*sin(t), w*w + (u*u + v*v)*cos(t), (c*(u*u + v*v) - w*(a*u + b*v))*(1 - cos(t)) + (a*v - b*u)*sin(t),0, 0, 0, 1;return matrix;
}int main(int argc, char** argv) {Eigen::Vector3f point = {5.7,1.8,-77};   //改变点的坐标Eigen::Vector3f axis={0,1,0};   //这里取的是绕y轴旋转,注意单位化Eigen::Matrix4f a=rot_mat(point,axis,(3.14/36));   //顺时针,弧度制std::cout<< a << std::endl;return 0;
}
  1. 为了让点云能够绕自身中心旋转,需要读取点云近似中心点的坐标,找到了open3d交互式显示点云的代码。
    链接: https://blog.csdn.net/u014072827/article/details/113765847.
    python:
pcd9 = o3d.io.read_point_cloud('fragment_018.pcd')
vis = o3d.visualization.VisualizerWithEditing()
vis.create_window()
vis.add_geometry(pcd9)
# 激活窗口。此函数将阻止当前线程,直到窗口关闭。
vis.run()  # 等待用户拾取点   shift +鼠标左键
vis.destroy_window()

open3d显示pcd点云并读取任意点的坐标+生成点云绕任意轴旋转的transformation matrix相关推荐

  1. 绕任意向量旋转分解到坐标系旋转

    如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:129518033 一.原理解析 假设向量为(a,b,c),旋转角度为θ. 绕任意向量旋转的过程分解如下: ...

  2. VTK笔记-几何变换-绕任意轴旋转

    绕任意轴旋转思路 中心轴与坐标轴平行   1.将旋转轴平移与坐标轴重合,物体也做平移操作:   2.物体绕坐标轴旋转:   3.执行步骤1的逆操作,将旋转轴平移回到原来位置,物体也对应平移: 中心轴与 ...

  3. 旋转——绕原点二维旋转,绕任意点的二维旋转,三维基本旋转,绕任意轴的三维旋转

    1 简介 计算机图形学中的应用非常广泛的变换是一种称为仿射变换的特殊变换,在仿射变换中的基本变换包括平移.旋转.缩放.剪切这几种.本文以及接下来的几篇文章重点介绍一下关于旋转的变换,包括二维旋转变换. ...

  4. CocosCreator | 绕任意轴旋转/绕任意点旋转/平滑旋转/自定义环形体、胶囊体/面向目标位置

    01 效果演示 Cocos Creator 版本:3.4.1 该 demo 演示了行星自转(绕任意轴旋转).行星公转(绕任意点旋转).镜头拉近/复位(平滑旋转).行星环(自定义环形体).行星轴(自定义 ...

  5. 沿任意轴旋转及其推导

    原博客地址:https://blog.csdn.net/zsq306650083/article/details/8773996 1. 2D中绕原点旋转 设基向量p,q和r分别是朝向+x,+y和+z方 ...

  6. 矩阵变换:沿任意轴旋转及其推导

    1. 2D中绕原点旋转 设基向量p,q和r分别是朝向+x,+y和+z方向的单位向量. 旋转角度为θ,基向量p,q绕原点旋转,得到新的基向量p`和q` 即旋转矩阵R(θ)为 2. 3d中绕坐标轴旋转 0 ...

  7. 第二章 python-pcl、open3d读取、显示pcd、bin等格式点云数据

    第二章 python-pcl.open3d读取.显示pcd.bin格式点云数据 文章目录 第二章 python-pcl.open3d读取.显示pcd.bin格式点云数据 前言 环境 一.点云数据类型 ...

  8. Open3d读写pcd点云文件

    1 Open3d 安装 Open3d是由Intel发布的一个开源库,支持快速开发和处理3D数据.Open3D在c++和Python中公开了一组精心选择的数据结构和算法.后端是高度优化的,并且是为并行化 ...

  9. 从PCD文件写入和读取点云数据

    (1)学习向PCD文件写入点云数据 建立工程文件ch2,然后新建write_pcd.cpp  CMakeLists.txt两个文件 write_pcd.cpp : #include <iostr ...

最新文章

  1. mysql 单列转换为行,mysql行转换为列
  2. 1102面向对象和类原型
  3. 如何让你的 Linux 系统干净整洁
  4. 解决RHEL sendmail服务启动慢
  5. mysql ft_mysql全文索引____ft_min_word_len
  6. 操作系统:Windows映射网络文件夹的方法介绍
  7. 【渝粤教育】广东开放大学 社会工作行政 形成性考核 (52)
  8. 你不知道的JS5-原型
  9. [HDU] 2553 N皇后问题-简单深搜
  10. linux多点触控软件测试,测试工程师日常工作中高频Linux命令
  11. c语言 文件加密头文件,[C语言]文件加密
  12. Jlink--SWD脚位连接
  13. go语言暂停命令_go test命令(Go语言测试命令)完全攻略
  14. eclipse的editor does not contain a main type错误
  15. 42.验证和授权(2)
  16. 实验报告(3)-语法分析
  17. UGUI是如何频繁访问Image/Text等组件的raycastTarget的(读源码有感)
  18. Python计算机视觉之特征提取与图像匹配
  19. 目标检测一阶段和二阶段对比图
  20. 2022跨年烟花代码(三)HTML5点击页面烟花绽放特效

热门文章

  1. python调用大漠多线程_大漠插件多线程绑定窗口登录游戏、程序全停、单停、恢复...
  2. 练习-任意输入n个从小到大的整数的数列,然后输入一个整数插入到数列中,使数列保持从小到大的顺序
  3. 回溯法求解N皇后问题及其时间复杂度分析
  4. DNS_PROBE_FINISHED_NXDOMAIN完美解决办法
  5. 月薪两万的“土豪”师兄,加个微信吧!
  6. { }大括号和[ ]中括号的用法
  7. TC Games 电脑玩手游助手会员无水印版,专为游戏直播玩家打造
  8. 济南ITSS证书办理大全
  9. MySQL用户权限详细汇总
  10. 使用vscode利用vue脚手架创建项目每次修改代码都会频繁编译