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

open3d-点云函数:变换:旋转,缩放、平移,齐次变换(R,T)等

1.代码

代码1:显示文字

# encoding: utf-8
# module open3d.cpu.pybind.visualization.gui
# from C:\Users\Lenovo\miniconda3\envs\yolov8\lib\site-packages\open3d\cpu\pybind.cp38-win_amd64.pyd
# by generator 1.147
# no doc# imports
import pybind11_builtins as __pybind11_builtinsclass Label3D(__pybind11_builtins.pybind11_object):""" Displays text in a 3D scene """def __init__(self, arg0, arg1, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ """__init__(self: open3d.cpu.pybind.visualization.gui.Label3D, arg0: str, arg1: numpy.ndarray[numpy.float32[3, 1]]) -> NoneCreate a 3D Label with given text and position"""passcolor = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default"""The color of the text (gui.Color)"""position = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default"""The position of the text in 3D coordinates"""scale = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default"""The scale of the 3D label. When set to 1.0 (the default) text will be rendered at its native font size. Larger and smaller values of scale will enlarge or shrink the rendered text. Note: large values of scale may result in blurry text as the underlying font is not resized."""text = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default"""The text to display with this label."""

解释

类名
open3d.cpu.pybind.visualization.gui.Label3D
作用:在 3D 场景中显示一段文字(3D 标签)。

Label3D(text: str, position: np.ndarray[np.float32[3, 1]])
  • text:要显示的文字内容。

  • position:一个形状为 (3, 1) 的 float32 numpy 数组,表示文字在 3D 世界坐标系中的位置 [x, y, z]。

可读写属性

  • text(str):标签文字。

  • position(numpy.ndarray):3D 坐标;直接赋一个新的 (3,) 或 (3,1) 数组即可移动标签。

  • color(gui.Color):文字颜色,例如 gui.Color(r, g, b)。

  • scale(float):文字整体缩放倍数。
    1.0 表示原始字号;>1.0 放大,<1.0 缩小。过大时文字可能变糊,因为底层字体纹理不会重生成。

Label3D 就是在 3D 窗口里放一个可随意定位、改色、缩放的文字标签。

代码2:旋转rotate

    def rotate(self, R, center): # real signature unknown; restored from __doc__"""rotate(self, R, center)Rotate points and lines. Custom attributes (e.g. point normals) are not rotated.Args:R (open3d.core.Tensor): Rotation [Tensor of shape (3,3)].center (open3d.core.Tensor): Center [Tensor of shape (3,)] about which the LineSet is to be rotated. Should be on the same device as the LineSet.Returns:open3d.t.geometry.LineSet"""pass

解释

作用
线集(LineSet) 的所有顶点和线段,绕指定中心 center旋转,返回旋转后的新 LineSet。

参数

  • R (open3d.core.Tensor):旋转矩阵,形状 (3, 3)

  • center (open3d.core.Tensor):旋转中心,形状 (3,);必须与 LineSet 在同一设备(CPU 或 CUDA)。

返回值
一个新的 open3d.t.geometry.LineSet(原对象不变)。

注意

只旋转“点”和“线”,不会自动旋转自定义属性(如顶点法线、颜色等)。

代码3 缩放scale

    def scale(self, scale, center): # real signature unknown; restored from __doc__"""scale(self, scale, center)Scale points and lines. Custom attributes are not scaled.Args:scale (float): Scale magnitude.center (open3d.core.Tensor): Center [Tensor of shape (3,)] about which the LineSet is to be scaled. Should be on the same device as the LineSet.Returns:open3d.t.geometry.LineSet"""pass

解释

作用
把当前线集(LineSet)的所有顶点与线段以指定中心为基准做均匀缩放,返回一个新的线集对象;原对象保持不变。

参数

  • scale (float):缩放倍数。

    • scale > 1 放大,

    • 0 < scale < 1 缩小,

    • scale < 0 会镜像翻转。

  • center (open3d.core.Tensor):缩放的中心点,形状 (3,);必须与线集位于同一设备(CPU/GPU)。

返回值
新的 open3d.t.geometry.LineSet

注意
仅对“点”和“线”几何坐标生效,不会自动缩放自定义属性(如颜色、法线、宽度等)。

代码4:平移translate

    def translate(self, translation, relative=True): # real signature unknown; restored from __doc__"""translate(self, translation, relative=True)Translates points and lines of the LineSet.Args:translation (open3d.core.Tensor): Translation tensor of dimension (3,). Should be on the same device as the LineSetrelative (bool, optional, default=True): If true (default) translates relative to center of LineSet.Returns:open3d.t.geometry.LineSet"""pass

解释

功能
把线集中所有顶点(以及线段)整体平移指定向量,返回一个新的 LineSet;原对象不变。

参数

  • translation (open3d.core.Tensor): 平移向量,形状 (3,),元素顺序 [dx, dy, dz]
    必须与线集在同一设备(CPU 或 CUDA)。

  • relative (bool, 默认 True):

    • True → 把线集自身中心作为原点,再施加 translation

    • False → 直接把 translation 加到每个顶点上(世界坐标系)。

返回值
新的 open3d.t.geometry.LineSet

代码5:齐次变换矩阵(R,T)-旋转+平移

    def transform(self, transformation): # real signature unknown; restored from __doc__"""transform(self, transformation)Transforms the points and lines. Custom attributes (e.g. point normals) are nottransformed. Extracts R, t from the transformation as:.. math::T_{(4,4)} = \begin{bmatrix} R_{(3,3)} & t_{(3,1)} \\O_{(1,3)} & s_{(1,1)} \end{bmatrix}It assumes :math:`s = 1` (no scaling) and :math:`O = [0,0,0]` and applies thetransformation as :math:`P = R(P) + t`Args:transformation (open3d.core.Tensor): Transformation [Tensor of shape (4,4)].  Should be on the same device as the LineSetReturns:open3d.t.geometry.LineSet"""pass

解释

作用
4×4 齐次变换矩阵 一次性对线集做 旋转 + 平移,返回新的 LineSet
(矩阵里的缩放因子 s 被强制设为 1,不做缩放;原点 O 必须为 [0,0,0]。)

数学表达
若矩阵
T = [ R t ]
[ 0 1 ]
则对每个点 P:
P′ = R·P + t

参数

  • transformation (open3d.core.Tensor):形状 (4,4) 的齐次矩阵,需与线集在同一设备 (CPU/GPU)。

返回值
新的 open3d.t.geometry.LineSet(原对象不变)。
注意:自定义属性(颜色、法线等)不会被自动变换。

2.代码-关于点云的变换

代码:旋转 rotate

    def rotate(self, R, center): # real signature unknown; restored from __doc__"""rotate(self: open3d.cpu.pybind.t.geometry.PointCloud, R: open3d.cpu.pybind.core.Tensor, center: open3d.cpu.pybind.core.Tensor) -> open3d.cpu.pybind.t.geometry.PointCloudRotate points and normals (if exist)."""pass

代码:缩放 sacle

    def scale(self, scale, center): # real signature unknown; restored from __doc__"""scale(self: open3d.cpu.pybind.t.geometry.PointCloud, scale: float, center: open3d.cpu.pybind.core.Tensor) -> open3d.cpu.pybind.t.geometry.PointCloudScale points."""pass

代码:平移 translate

    def translate(self, translation, relative=True): # real signature unknown; restored from __doc__"""translate(self: open3d.cpu.pybind.t.geometry.PointCloud, translation: open3d.cpu.pybind.core.Tensor, relative: bool = True) -> open3d.cpu.pybind.t.geometry.PointCloudTranslates points."""pass

代码:齐次变换 transform

    def transform(self, transformation): # real signature unknown; restored from __doc__"""transform(self: open3d.cpu.pybind.t.geometry.PointCloud, transformation: open3d.cpu.pybind.core.Tensor) -> open3d.cpu.pybind.t.geometry.PointCloudTransforms the points and normals (if exist)."""pass

http://www.dtcms.com/a/342249.html

相关文章:

  • 从“卡脖子”到“自主可控”!电科金仓+东华医为生态协同,打造医疗新范式
  • postman接口自动化测试
  • NavA3——双VLM架构下的先“推理解析”后“定位导航”:理解任意指令,导航至任意地点,查找任意目标
  • opencv基础学习与实战(3)图像形态学与边缘检测
  • langgraph快速搭建agent后端和react前端
  • TOC语法源码生成脚本:基础易纷呈,进阶心渲染(python)
  • 基于 Flask 与 Milvus 构建高效图片搜索引擎,可通过API接入,支持Docker一键部署
  • java学习 1504 统计全1子矩形 + python生成ppt部分思路
  • 项目从 MySQL 切换 PostgreSQL,踩了太多的坑
  • elementui附件上传自定义文件列表,实现传完即可预览、下载、删除,二次封装el-upload
  • yggjs_react使用教程 v0.1.1
  • yggjs_rlayout 科技风主题后台管理系统实战
  • React:Umi + React + Ant Design Pro的基础上接入Mock数据
  • nuxt3 404页面 如何写
  • 当云手机进入不了游戏怎么办?
  • 1504. 统计全 1 子矩形
  • windows中bat脚本中一些操作(一)
  • 关于 VScode 无法连接 Linux 主机并报错 <未能下载 VScode 服务器> 的解决方案
  • 强化学习算法分类与介绍(含权重更新公式)
  • 从vue2到vue3
  • VASPKIT模版INCAR笔记
  • K8s快速上手-微服务篇篇
  • 【ZeroNews】OpenWrt路由器小存储开启内网穿透
  • 2025年8月新算法—云漂移优化算法(Cloud Drift Optimization Algorithm, CDO)
  • C++ this 指针
  • 2025-08-21 Python进阶2——数据结构
  • Rancher部署的K8S集群服务节点上执行 kubectl 命令
  • JavaCV + Spring 实现高效 RTSP 视频流帧缓存与管理
  • MybatisPlusAutoConfiguration源码阅读
  • 稀土元素带来农业科技革命