<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[3D可视化神器之Open3D]]></title><description><![CDATA[<p>很多时候在python里面你要找一个3D点云可视化的库真的是难啊。你的选择可能是：</p>
<ul>
<li>pcl</li>
<li>mayavi</li>
<li>matplolib</li>
</ul>
<p>但是以上都不好用，pcl甚至没有靠谱的python wrapper，唯一一个开源的已经很久没有维护了。在3D显示或者点云处理中，效率是很重要的，不能岁岁便便用一个假的框架。此时一个由intel发布的Open3D出现了。<br />
我在上一篇分享中也提到过open3d可以将pointnet++推理速度提速的到10fps以内。非常有用。（要知道点云的分割可是非常好时的）。</p>
<p><img src="/assets/uploads/files/1550646740135-a54a80a5-c535-47b3-9cb4-6a48a7ea04eb-image.png" alt="a54a80a5-c535-47b3-9cb4-6a48a7ea04eb-image.png" class="img-responsive img-markdown" /></p>
<p>open3d 显示点云的效果。它的安装非常简单：</p>
<pre><code>pip3 install open3d-python
</code></pre>
<p>导入的时候打概率可能因为IPYthon导致出错，安装IPython就行。实力程序：</p>
<pre><code>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])

</code></pre>
<p>Open3D的真正强大之处不在于精简的显示点云，而是一些自定义的功能，这个在可视化的时候非常有用。<br />
比如我们可以添加自定义的 <code>draw_geometries</code> 函数，显示结果可以：</p>
<pre><code>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(
                &quot;../../TestData/renderoption.json&quot;)
        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(&quot;K&quot;)] = change_background_to_black
    key_to_callback[ord(&quot;R&quot;)] = load_render_option
    key_to_callback[ord(&quot;,&quot;)] = capture_depth
    key_to_callback[ord(&quot;.&quot;)] = capture_image
    draw_geometries_with_key_callbacks([pcd], key_to_callback)

custom_draw_geometry_with_key_callback(point_cloud)
</code></pre>
<p><img src="/assets/uploads/files/1550647061370-c85f01e4-cc91-49c6-ab9c-c7e075f09d06-image.png" alt="c85f01e4-cc91-49c6-ab9c-c7e075f09d06-image.png" class="img-responsive img-markdown" /></p>
<p>看着还不错。本来想显示一下kitti点云的。但是<strong>好像有的点是4的倍数有的是5的倍数</strong>, 这，，，这怎么reshape？</p>
<p>后面再更新<br />
本文首发自奇异社区-一个专注人工智能等高科技的社区论坛：<a href="http://talk.strangeai.pro" target="_blank" rel="noopener noreferrer nofollow">http://talk.strangeai.pro</a></p>
]]></description><link>http://t.manaai.cn/topic/37/3d可视化神器之open3d</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Jul 2026 08:15:40 GMT</lastBuildDate><atom:link href="http://t.manaai.cn/topic/37.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 20 Feb 2019 07:49:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 3D可视化神器之Open3D on Wed, 20 Feb 2019 07:49:09 GMT]]></title><description><![CDATA[<p>很多时候在python里面你要找一个3D点云可视化的库真的是难啊。你的选择可能是：</p>
<ul>
<li>pcl</li>
<li>mayavi</li>
<li>matplolib</li>
</ul>
<p>但是以上都不好用，pcl甚至没有靠谱的python wrapper，唯一一个开源的已经很久没有维护了。在3D显示或者点云处理中，效率是很重要的，不能岁岁便便用一个假的框架。此时一个由intel发布的Open3D出现了。<br />
我在上一篇分享中也提到过open3d可以将pointnet++推理速度提速的到10fps以内。非常有用。（要知道点云的分割可是非常好时的）。</p>
<p><img src="/assets/uploads/files/1550646740135-a54a80a5-c535-47b3-9cb4-6a48a7ea04eb-image.png" alt="a54a80a5-c535-47b3-9cb4-6a48a7ea04eb-image.png" class="img-responsive img-markdown" /></p>
<p>open3d 显示点云的效果。它的安装非常简单：</p>
<pre><code>pip3 install open3d-python
</code></pre>
<p>导入的时候打概率可能因为IPYthon导致出错，安装IPython就行。实力程序：</p>
<pre><code>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])

</code></pre>
<p>Open3D的真正强大之处不在于精简的显示点云，而是一些自定义的功能，这个在可视化的时候非常有用。<br />
比如我们可以添加自定义的 <code>draw_geometries</code> 函数，显示结果可以：</p>
<pre><code>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(
                &quot;../../TestData/renderoption.json&quot;)
        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(&quot;K&quot;)] = change_background_to_black
    key_to_callback[ord(&quot;R&quot;)] = load_render_option
    key_to_callback[ord(&quot;,&quot;)] = capture_depth
    key_to_callback[ord(&quot;.&quot;)] = capture_image
    draw_geometries_with_key_callbacks([pcd], key_to_callback)

custom_draw_geometry_with_key_callback(point_cloud)
</code></pre>
<p><img src="/assets/uploads/files/1550647061370-c85f01e4-cc91-49c6-ab9c-c7e075f09d06-image.png" alt="c85f01e4-cc91-49c6-ab9c-c7e075f09d06-image.png" class="img-responsive img-markdown" /></p>
<p>看着还不错。本来想显示一下kitti点云的。但是<strong>好像有的点是4的倍数有的是5的倍数</strong>, 这，，，这怎么reshape？</p>
<p>后面再更新<br />
本文首发自奇异社区-一个专注人工智能等高科技的社区论坛：<a href="http://talk.strangeai.pro" target="_blank" rel="noopener noreferrer nofollow">http://talk.strangeai.pro</a></p>
]]></description><link>http://t.manaai.cn/post/76</link><guid isPermaLink="true">http://t.manaai.cn/post/76</guid><dc:creator><![CDATA[刘看山]]></dc:creator><pubDate>Wed, 20 Feb 2019 07:49:09 GMT</pubDate></item><item><title><![CDATA[Reply to 3D可视化神器之Open3D on Wed, 20 Feb 2019 08:08:58 GMT]]></title><description><![CDATA[<p>@金天 All right. Here we go</p>
<p><img src="/assets/uploads/files/1550650113418-a42933e5-57a0-42c8-b6db-e85be556165c-image.png" alt="a42933e5-57a0-42c8-b6db-e85be556165c-image.png" class="img-responsive img-markdown" /></p>
<p>结果是np.fromfile 的dtype的问题。实际上是4,纠正一下。</p>
]]></description><link>http://t.manaai.cn/post/77</link><guid isPermaLink="true">http://t.manaai.cn/post/77</guid><dc:creator><![CDATA[刘看山]]></dc:creator><pubDate>Wed, 20 Feb 2019 08:08:58 GMT</pubDate></item></channel></rss>