【open3d】显示kitti 点云数据和bbox
文章目录
- 1 代码
- 2 结果
1 代码
#!/usr/bin/env python
#!coding=utf-8
import numpy as np
import pickle
import open3d
import timef2 = open('/home/seivl/kitti_test_open3d/5411.pkl','rb')
data2 = pickle.load(f2)def rotz(t):"""Rotation about the z-axis."""c = np.cos(t)s = np.sin(t)return np.array([[c, -s, 0],[s, c, 0],[0, 0, 1]])def my_compute_box_3d(center, size, heading_angle):h = size[2]w = size[0]l = size[1]heading_angle = -heading_angle - np.pi / 2 center[2] = center[2] + h / 2R = rotz(1*heading_angle)l = l/2w = w/2h = h/2x_corners = [-l,l,l,-l,-l,l,l,-l]y_corners = [w,w,-w,-w,w,w,-w,-w]z_corners = [h,h,h,h,-h,-h,-h,-h]corners_3d = np.dot(R, np.vstack([x_corners, y_corners, z_corners]))corners_3d[0,:] += center[0]corners_3d[1,:] += center[1]corners_3d[2,:] += center[2]return np.transpose(corners_3d)def main():# axis = open3d.create_mesh_coordinate_frame(size=1,origin=[0,0,0])vis = open3d.Visualizer()vis.create_window(window_name="kitti")vis.get_render_option().point_size = 10# ctr = vis.get_view_control()# ctr.set_lookat([0, 0, 0.3])opt = vis.get_render_option()opt.background_color = np.asarray([0, 0, 0])pointcloud = open3d.PointCloud()pointcloud.points = open3d.utility.Vector3dVector(data2["point"]) pointcloud.colors = open3d.utility.Vector3dVector([[255, 255, 255] for _ in range(len(data2["point"]))]) for i in range(len(data2["gt"])):bbox = data2["gt"][i]corners_3d = my_compute_box_3d(bbox[0:3], bbox[3:6], bbox[6])bbox_lines = [[0, 1], [1, 2], [2, 3], [3, 0], [4, 5], [5, 6], [6, 7], [7, 4], [0, 4], [1, 5], [2, 6], [3, 7]]colors = [[1, 0, 0] for _ in range(len(bbox_lines))] #redbbox = open3d.LineSet()bbox.lines = open3d.Vector2iVector(bbox_lines)bbox.colors = open3d.Vector3dVector(colors)bbox.points = open3d.Vector3dVector(corners_3d)vis.add_geometry(bbox)for i in range(len(data2["pred"])):bbox = data2["pred"][i]corners_3d = my_compute_box_3d(bbox[0:3], bbox[3:6], bbox[6])bbox_lines = [[0, 1], [1, 2], [2, 3], [3, 0], [4, 5], [5, 6], [6, 7], [7, 4], [0, 4], [1, 5], [2, 6], [3, 7]]colors = [[0, 1, 0] for _ in range(len(bbox_lines))] #greenbbox = open3d.LineSet()bbox.lines = open3d.Vector2iVector(bbox_lines)bbox.colors = open3d.Vector3dVector(colors)bbox.points = open3d.Vector3dVector(corners_3d)vis.add_geometry(bbox)vis.add_geometry(pointcloud)# vis.add_geometry(axis)while True:vis.update_geometry()vis.poll_events()vis.update_renderer()
if __name__ == '__main__':main()
2 结果
【open3d】显示kitti 点云数据和bbox相关推荐
- 点云数据显示_vispy 显示 kitti 点云数据
国内博客找了一圈,居然没有发现有用 vispy 做可视化的代码,这里做一个简单的示例,代码大部分来自官方. import numpy as np import vispy.scene from vis ...
- Open3D 可视化numpy点云数据
Open3D 可视化numpy点云数据 使用Open3D 可视化点云数据的效果比较炫. 但是当我时隔半年重新使用Open3D库时发现原来的用法发生了改变,特此记录,持续更新. Anaconda 安装O ...
- 使用open3d加载点云数据工具类
设计思路: 将点云文件加载成tensor类型,用于PointNet进行处理. 将tensor类型的点云文件保存到指定的位置 将点云数据可视化 类似于ply类型的点云文件,使用open3d读入之后,类型 ...
- open3d显示pcd点云并读取任意点的坐标+生成点云绕任意轴旋转的transformation matrix
为了对点云进行旋转操作,达到各点云之间不对齐的效果,找到了生成点云绕任意轴旋转的矩阵的代码. 链接: https://blog.csdn.net/u010848251/article/details/ ...
- Open3D打开TXT点云数据文件
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 二.使用步骤 1.打开txt文件 2.保存txt文件 总结 前言 提示:open3D可直接打开PCD,PLY文件 # ...
- Open3d系列 | 1. Open3d实现点云数据读写、点云配准、点云法向量计算
如有错误,恳请指出. 从这一篇博客开始,开始利用Open3d来处理点云数据.之后将围绕点云数据的多种处理方式来记录笔记.本篇博客的内容包括点云的文件格式介绍,点云数据的读取,以及点云的配准与点云的法向 ...
- Open3d系列 | 2. Open3d实现点云数据增强
如有错误,恳请指出. 在计算机视觉领域中,基于图像已经提出了一系列的数据增强方法.常见图像数据增强方式有平移.缩放.旋转等仿射变换,还有对比度变换等等.那么,对于点云来说,同样可以进行平移缩放与旋转. ...
- 从零实现一个3D目标检测算法(2):点云数据预处理
在上一篇文章<从零实现一个3D目标检测算法(1):3D目标检测概述>对3D目标检测研究现状和PointPillars模型进行了介绍,在本文中我们开始写代码一步步实现PointPillars ...
- 亿欧智库发布最新研究报告 阿里云数据中台成中国乳企数字化首选方案
正文: 日前,亿欧智库发布<2020年中国乳制品行业数据中台研究报告>.报告显示,数据中台价值能有效助力乳制品行业全域+敏捷数字化发展.阿里云数据中台也成为中国乳制品行业的首选方案. 目前 ...
最新文章
- [转载]配置unp.h头文件环境
- 【python 图像处理】skimage的子模块介绍
- Java面向对象(六)接口
- 运维必知的23个经验教训,值得收藏!
- linux的驱动开发——内核模块如何使用?
- java性能优化方案_Java性能优化要点
- cube云原生机器学习平台-架构(二)
- Javascript:实现字符串replaceAll方法
- JAVA反射性能约慢三个量级
- OpenStreetMap/Google/百度/Bing瓦片地图服务(TMS)
- java ssm 运行步骤_SSM项目整合基本步骤
- leetcode69
- 左程云算法笔记(三)堆排序、桶排序、排序总结
- apache24+php8配置
- 攻防世界题库logmein
- NW集成打包 自定义图标及注意事项
- 语中最美的十大经典爱情句子
- 念整数(你的程序要读入一个整数,范围是[-100000,100000]。然后,用汉语拼音将这个整数的每一位输出出来。 如输入1234,则输出: yi er san si)
- 面试笔记@MySQL
- Codeforces 1255B Fridge Lockers