• 3D可视化神器之Open3D


    作者:金天
    链接:https://zhuanlan.zhihu.com/p/57215172
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    很多时候在python里面你要找一个3D点云可视化的库真的是难啊。你的选择可能是:

    • pcl
    • mayavi
    • matplolib

    但是以上都不好用,pcl甚至没有靠谱的python wrapper,唯一一个开源的已经很久没有维护了。在3D显示或者点云处理中,效率是很重要的,不能岁岁便便用一个假的框架。此时一个由intel发布的Open3D出现了。
    我在上一篇分享中也提到过open3d可以将pointnet++推理速度提速的到10fps以内。非常有用。(要知道点云的分割可是非常好时的)。

     

     

    open3d 显示点云的效果。它的安装非常简单:

    pip3 install open3d-python

    导入的时候打概率可能因为IPYthon导致出错,安装IPython就行。实力程序:

    import os
    import numpy as np
    from open3d import *
    
    
    points = np.random.rand(10000, 3)
    point_cloud = PointCloud()
    point_cloud.points = Vector3dVector(points)
    draw_geometries([point_cloud])

    Open3D的真正强大之处不在于精简的显示点云,而是一些自定义的功能,这个在可视化的时候非常有用。
    比如我们可以添加自定义的 draw_geometries 函数,显示结果可以:

    def custom_draw_geometry_with_key_callback(pcd):
        def change_background_to_black(vis):
            opt = vis.get_render_option()
            opt.background_color = np.asarray([0, 0, 0])
            return False
        def load_render_option(vis):
            vis.get_render_option().load_from_json(
                    "../../TestData/renderoption.json")
            return False
        def capture_depth(vis):
            depth = vis.capture_depth_float_buffer()
            plt.imshow(np.asarray(depth))
            plt.show()
            return False
        def capture_image(vis):
            image = vis.capture_screen_float_buffer()
            plt.imshow(np.asarray(image))
            plt.show()
            return False
        key_to_callback = {}
        key_to_callback[ord("K")] = change_background_to_black
        key_to_callback[ord("R")] = load_render_option
        key_to_callback[ord(",")] = capture_depth
        key_to_callback[ord(".")] = capture_image
        draw_geometries_with_key_callbacks([pcd], key_to_callback)
    
    custom_draw_geometry_with_key_callback(point_cloud)

     

     

    看着还不错。本来想显示一下kitti点云的。但是好像有的点是4的倍数有的是5的倍数, 这,,,这怎么reshape?

  • 相关阅读:
    WCF Security系列(1)Security概述
    转:如何修复Team Foundation Server Workgroup Edition 不小心删除了所有Team Foundation Licensed Users组内用户问题
    转:最真实的2006年应届毕业生真实薪水
    如果为网站生成自签名SSL证书
    转 :TFS(Team Foundation Server)使用经验
    The sequence 2 序列2 攻略 (第4049关)
    力扣 223. 矩形面积
    The sequence 2 序列2 攻略 (第5059关)
    The sequence 2攻略 序列2攻略(第3039关)
    题解 P1147 【连续自然数和】
  • 原文地址:https://www.cnblogs.com/yibeimingyue/p/13745583.html
Copyright © 2020-2023  润新知