mayavi库可视化3D点云

1. 安装mayavi

pip3 install mayavi
pip3 install wxPython #可视化点云窗口

2. 代码

import os

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
from mayavi import mlab

def on_scroll(event,ax,fig):
    # 获取当前x轴和y轴的范围
    cur_xlim = ax.get_xlim()
    cur_ylim = ax.get_ylim()

    # 获取鼠标滚动方向和幅度
    x_scroll = event.step * 0.1 * (cur_xlim[1] - cur_xlim[0])
    y_scroll = event.step * 0.1 * (cur_ylim[1] - cur_ylim[0])

    # 更新x轴和y轴的范围
    new_xlim = [cur_xlim[0] + x_scroll, cur_xlim[1] - x_scroll]
    new_ylim = [cur_ylim[0] + y_scroll, cur_ylim[1] - y_scroll]

    # 设置x轴和y轴的范围
    ax.set_xlim(new_xlim)
    ax.set_ylim(new_ylim)

    # 重新绘制图像
    fig.canvas.draw_idle()


def get_ptcloud_img(ptcloud,roll,pitch):
    fig = plt.figure(figsize=(8, 8))

    x, y, z = ptcloud[:,:3].transpose(1, 0)
    ax = fig.gca(projection=Axes3D.name, adjustable='box')
    ax.axis('off')
    #ax.axis('scaled')
    ax.view_init(roll,pitch)
    max, min = np.max(ptcloud), np.min(ptcloud)
    ax.set_xbound(min, max)
    ax.set_ybound(min, max)
    ax.set_zbound(min, max)
    ax.scatter(x, y, z, zdir='z', color='blue')
    
    fig.canvas.mpl_connect('scroll_event', lambda event: on_scroll(event, ax,fig))
    plt.show()



point = np.load(r"bed_0001.npy",allow_pickle=True)
print(point.shape)

coords = point[:,:3]

mlab.figure(bgcolor=(1,1,1))

mlab.points3d(coords[:,0],coords[:,1],coords[:,2],color=(128/255,128/255,255/255))

mlab.show()

3. 可视化效果

在这里插入图片描述

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值