文章目录

  • 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相关推荐

  1. 点云数据显示_vispy 显示 kitti 点云数据

    国内博客找了一圈,居然没有发现有用 vispy 做可视化的代码,这里做一个简单的示例,代码大部分来自官方. import numpy as np import vispy.scene from vis ...

  2. Open3D 可视化numpy点云数据

    Open3D 可视化numpy点云数据 使用Open3D 可视化点云数据的效果比较炫. 但是当我时隔半年重新使用Open3D库时发现原来的用法发生了改变,特此记录,持续更新. Anaconda 安装O ...

  3. 使用open3d加载点云数据工具类

    设计思路: 将点云文件加载成tensor类型,用于PointNet进行处理. 将tensor类型的点云文件保存到指定的位置 将点云数据可视化 类似于ply类型的点云文件,使用open3d读入之后,类型 ...

  4. open3d显示pcd点云并读取任意点的坐标+生成点云绕任意轴旋转的transformation matrix

    为了对点云进行旋转操作,达到各点云之间不对齐的效果,找到了生成点云绕任意轴旋转的矩阵的代码. 链接: https://blog.csdn.net/u010848251/article/details/ ...

  5. Open3D打开TXT点云数据文件

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 二.使用步骤 1.打开txt文件 2.保存txt文件 总结 前言 提示:open3D可直接打开PCD,PLY文件 # ...

  6. Open3d系列 | 1. Open3d实现点云数据读写、点云配准、点云法向量计算

    如有错误,恳请指出. 从这一篇博客开始,开始利用Open3d来处理点云数据.之后将围绕点云数据的多种处理方式来记录笔记.本篇博客的内容包括点云的文件格式介绍,点云数据的读取,以及点云的配准与点云的法向 ...

  7. Open3d系列 | 2. Open3d实现点云数据增强

    如有错误,恳请指出. 在计算机视觉领域中,基于图像已经提出了一系列的数据增强方法.常见图像数据增强方式有平移.缩放.旋转等仿射变换,还有对比度变换等等.那么,对于点云来说,同样可以进行平移缩放与旋转. ...

  8. 从零实现一个3D目标检测算法(2):点云数据预处理

    在上一篇文章<从零实现一个3D目标检测算法(1):3D目标检测概述>对3D目标检测研究现状和PointPillars模型进行了介绍,在本文中我们开始写代码一步步实现PointPillars ...

  9. 亿欧智库发布最新研究报告 阿里云数据中台成中国乳企数字化首选方案

    正文: 日前,亿欧智库发布<2020年中国乳制品行业数据中台研究报告>.报告显示,数据中台价值能有效助力乳制品行业全域+敏捷数字化发展.阿里云数据中台也成为中国乳制品行业的首选方案. 目前 ...

最新文章

  1. [转载]配置unp.h头文件环境
  2. 【python 图像处理】skimage的子模块介绍
  3. Java面向对象(六)接口
  4. 运维必知的23个经验教训,值得收藏!
  5. linux的驱动开发——内核模块如何使用?
  6. java性能优化方案_Java性能优化要点
  7. cube云原生机器学习平台-架构(二)
  8. Javascript:实现字符串replaceAll方法
  9. JAVA反射性能约慢三个量级
  10. OpenStreetMap/Google/百度/Bing瓦片地图服务(TMS)
  11. java ssm 运行步骤_SSM项目整合基本步骤
  12. leetcode69
  13. 左程云算法笔记(三)堆排序、桶排序、排序总结
  14. apache24+php8配置
  15. 攻防世界题库logmein
  16. NW集成打包 自定义图标及注意事项
  17. 语中最美的十大经典爱情句子
  18. 念整数(你的程序要读入一个整数,范围是[-100000,100000]。然后,用汉语拼音将这个整数的每一位输出出来。 如输入1234,则输出: yi er san si)
  19. 面试笔记@MySQL
  20. Codeforces 1255B Fridge Lockers

热门文章

  1. 【零基础】小声bb Java系列第一讲:Java简介与环境配置
  2. 如何让你的广告效果最好?CPC广告生存法则
  3. matlab 模拟关键词推广,关键词推广系统
  4. 个性化推荐的工业级实现
  5. 汇编实现通过输入被加数与加数,实现加法
  6. 大型SEO策略方法(转载)
  7. 用 Python 实现股票指数移动平均线
  8. rust php 扩展,在PHP程序中使用Rust扩展的方法_php技巧
  9. 摘:一张废手机卡的作用
  10. 安装Zcashd Zcash-cli体验