Skip to main content

PointCloud-PyUsage

提供点云处理的Python实现,本仓库正在进行大幅度地迭代,暂不建议使用

安装

安装依赖

  • ROS1 / ROS2(如需要用到ROS的相关插件)
  • Open3D(如果Python版本为3.10,需自行安装Open3D@ref)
# pip 版本需要大于等于20.3
$ pip3 install -U pip
$ pip3 install --user --pre https://storage.googleapis.com/open3d-releases-master/python-wheels/open3d-0.16.0-cp310-cp310-manylinux_2_27_x86_64.whl"
  • 构建工具
$ pip3 install -U build

构建安装和安装包

$ git clone https://github.com/Natsu-Akatsuki/PointCloud-PyUsage --depth=1
$ cd PointCloud-PyUsage
# (推荐)非开发模式
$ bash install.sh

# 开发模式
$ pip3 install -e .

Note

非虚拟环境下,使用开发模式可能出现its build backend is missing the 'build_editable' hook的报错,则可能是系统级别的setuptools的版本覆盖了高版本的setuptools。通过如下命令行可查询当前的版本python3 -c "import setuptools; print(setuptools.__version__)"

程序

包名 作用
io 导入和导出点云文件
visualization 点云可视化
ros-utils 动态调参,ROS消息类型和numpy类型的相互转换

IO

  • 支持npy,pcd,bin点云文件的读取
  • 目前支持读取的字段包括xyz,xyzi
# >>> import usage >>>
from pointcloud_utils.io import load_pointcloud

# low-level API
pointcloud = load_npy("../data/pointcloud.npy")
pointcloud = load_txt("../data/pointcloud.txt")
pointcloud = load_pcd("../data/pointcloud_ascii.pcd")
# high-level API(支持npy, pcd, bin文件)
pointcloud = load_pointcloud("pointcloud_utils/data/pointcloud.pcd")

# >>> export usage >>>
save_pointcloud(pointcloud, "pointcloud.pcd")

Visualization

  • 可视化激光点云
  • 基于强度实现点云伪彩色增强
from pointcloud_utils.io import load_pointcloud
from pointcloud_utils.visualization import o3d_viewer_from_pointcloud
pointcloud = load_pointcloud("pointcloud_utils/data/pointcloud_ascii.pcd")
with print_durations(unit='ms'):
  o3d_viewer_from_pointcloud(pointcloud)

命令行

可视化点云

  • 基于Open3D的点云可视化,支持npy,pcd,bin点云文件的可视化
  • 目前支持的字段包括xyz,xyzi
  • 强度字段使用伪彩色增强
$ o3d_viewer <pointcloud_file>
# 如遇到KITTI数据集这种将强度进行过归一化的则需要加上-n选项
$ o3d_viewer -n <pointcloud_file>

TODO

  • 用开发模式安装的包无法被Pycharm智能识别而不能实现补全(不论是否处于虚拟环境)
  • 使用github来构建安装包

规范

  • 遵从pep660(setuptools至少需要v64.0才支持单个toml下的develop模式)(@ref)

参考资料

仓库 参考
ros_numpy ROS1 点云数据和numpy数据相互转换
ros2_numpy ROS1 点云数据和numpy数据相互转换
ddynamic_reconfigure_python ROS1 动态调参
OpenPCDet 神经网络算子和标定
pykitti KITTI数据集读取
livox_mapping 基于强度值的伪彩色

Metadata

Release files for ampcl 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for ampcl 0.0.1
File Interpreter ABI Platform
ampcl-0.0.1-py3-none-any.whl Python 3 none any Details

Release files / ampcl-0.0.1-py3-none-any.whl

Download URL ampcl-0.0.1-py3-none-any.whl
Size 35.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ae92d22ff5c0f4d14423e922ffaec49f284bcc85f1e262e9372508eec7c259b7
BLAKE2b-256 checksum
How to use checksums
1f7ad7a071b77fb3c0695e7d086b39ce87c43fd04175010214350394193d373e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.15

Release history Release notifications | RSS feed

This release

0.0.1 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page