{"id":2182,"date":"2021-08-16T15:00:53","date_gmt":"2021-08-16T07:00:53","guid":{"rendered":"http:\/\/www.yatenglg.cn\/?p=2182"},"modified":"2022-10-24T11:33:30","modified_gmt":"2022-10-24T03:33:30","slug":"open3d-%e8%a1%a8%e9%9d%a2%e9%87%8d%e5%bb%ba","status":"publish","type":"post","link":"https:\/\/www.yatenglg.cn\/blog\/?p=2182","title":{"rendered":"open3d-\u8868\u9762\u91cd\u5efa"},"content":{"rendered":"\r\n<h1>\u4e3a\u5b9e\u73b0\u4e09\u89d2\u7f51\u683c\u8868\u9762\u91cd\u5efa\uff0copen3d.geometry.TriangleMesh\u63d0\u4f9b\u4e86\u591a\u79cd\u65b9\u5f0f\u3002<\/h1>\r\n\r\n\r\n\r\n<div class=\"hcb_wrap\">\r\n<pre class=\"prism undefined-numbers lang-python\" data-lang=\"Python\"><code>class TriangleMesh(MeshBase):        \r\n    # Alpha shapes                       \r\n    def create_from_point_cloud_alpha_shape(self, *args, **kwargs):\r\n    # Ball pivoting\r\n    def create_from_point_cloud_ball_pivoting(self, pcd, radii):\r\n    # Poisson\r\n    def create_from_point_cloud_poisson(self, pcd, depth=8, width=0, scale=1.1, linear_fit=False, n_threads=-1):\r\n\r\n    ...<\/code><\/pre>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"hcb_wrap\">\r\n<pre class=\"prism undefined-numbers lang-python\" data-lang=\"Python\"><code>import open3d as o3d\r\nimport numpy as np\r\nfrom open3d.web_visualizer import draw\r\nfrom open3d.visualization import draw_geometries<\/code><\/pre>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"hcb_wrap\">\r\n<pre class=\"prism undefined-numbers lang-python\" data-lang=\"Python\"><code>pcd = o3d.io.read_point_cloud('.\/datas\/sphere.ply')\r\npcd.paint_uniform_color([1, 0, 0])\r\nprint(pcd)\r\n-&gt; PointCloud with 642 points.\r\ndraw(pcd)<\/code><\/pre>\r\n<\/div>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img class=\"wp-image-2199 size-medium alignnone\" src=\"http:\/\/www.yatenglg.cn\/blog\/wp-content\/uploads\/2021\/08\/gnome-shell-screenshot-KM2770-300x232.png\" alt=\"\" width=\"300\" height=\"232\" srcset=\"https:\/\/www.yatenglg.cn\/blog\/wp-content\/uploads\/2021\/08\/gnome-shell-screenshot-KM2770-300x232.png 300w, https:\/\/www.yatenglg.cn\/blog\/wp-content\/uploads\/2021\/08\/gnome-shell-screenshot-KM2770.png 439w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/figure>\r\n\r\n\r\n\r\n<div class=\"hcb_wrap\">\r\n<pre class=\"prism undefined-numbers lang-python\" data-lang=\"Python\"><code>mesh1 = o3d.geometry.TriangleMesh.create_from_point_cloud_alpha_shape(pcd, 25)\r\nmesh1.compute_vertex_normals()\r\nmesh1.paint_uniform_color([0.5, 0.5, 0.5])\r\nprint(mesh1)\r\n-&gt; TriangleMesh with 642 points and 1424 triangles.\r\ndraw([mesh1, pcd])<\/code><\/pre>\r\n<\/div>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img class=\"alignnone wp-image-2200 size-medium\" src=\"http:\/\/www.yatenglg.cn\/blog\/wp-content\/uploads\/2021\/08\/gnome-shell-screenshot-LC1Z70-300x243.png\" alt=\"\" width=\"300\" height=\"243\" srcset=\"https:\/\/www.yatenglg.cn\/blog\/wp-content\/uploads\/2021\/08\/gnome-shell-screenshot-LC1Z70-300x243.png 300w, https:\/\/www.yatenglg.cn\/blog\/wp-content\/uploads\/2021\/08\/gnome-shell-screenshot-LC1Z70.png 446w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/figure>\r\n\r\n\r\n\r\n<div class=\"hcb_wrap\">\r\n<pre class=\"prism undefined-numbers lang-python\" data-lang=\"Python\"><code>radii = [20, 15, 10]\r\npcd.estimate_normals()\r\npcd.orient_normals_consistent_tangent_plane(1)\r\n# draw_geometries([pcd])\r\nmesh2 = o3d.geometry.TriangleMesh.create_from_point_cloud_ball_pivoting(pcd, o3d.utility.DoubleVector(radii))\r\nmesh2.compute_vertex_normals()\r\nmesh2.paint_uniform_color([0.5, 0.5, 0.5])\r\nprint(mesh2)\r\n-&gt; TriangleMesh with 642 points and 1280 triangles.\r\ndraw([mesh2, pcd])<\/code><\/pre>\r\n<\/div>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img class=\"alignnone wp-image-2201 size-medium\" src=\"http:\/\/www.yatenglg.cn\/blog\/wp-content\/uploads\/2021\/08\/gnome-shell-screenshot-0TAU70-300x267.png\" alt=\"\" width=\"300\" height=\"267\" srcset=\"https:\/\/www.yatenglg.cn\/blog\/wp-content\/uploads\/2021\/08\/gnome-shell-screenshot-0TAU70-300x267.png 300w, https:\/\/www.yatenglg.cn\/blog\/wp-content\/uploads\/2021\/08\/gnome-shell-screenshot-0TAU70.png 389w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/figure>\r\n\r\n\r\n\r\n<div class=\"hcb_wrap\">\r\n<pre class=\"prism undefined-numbers lang-python\" data-lang=\"Python\"><code>mesh3, densities3 = o3d.geometry.TriangleMesh.create_from_point_cloud_poisson(pcd)\r\nmesh3.compute_vertex_normals()\r\nmesh3.paint_uniform_color([0.5, 0.5, 0.5])\r\nprint(mesh3)\r\n-&gt; TriangleMesh with 3990 points and 7976 triangles.\r\nprint(np.asarray(densities3).shape)\r\n-&gt; (3990,)\r\n\r\ndraw([mesh3, pcd])<\/code><\/pre>\r\n<\/div>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img class=\"alignnone wp-image-2202 size-medium\" src=\"http:\/\/www.yatenglg.cn\/blog\/wp-content\/uploads\/2021\/08\/gnome-shell-screenshot-0EGC80-300x259.png\" alt=\"\" width=\"300\" height=\"259\" srcset=\"https:\/\/www.yatenglg.cn\/blog\/wp-content\/uploads\/2021\/08\/gnome-shell-screenshot-0EGC80-300x259.png 300w, https:\/\/www.yatenglg.cn\/blog\/wp-content\/uploads\/2021\/08\/gnome-shell-screenshot-0EGC80.png 406w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/figure>\r\n","protected":false},"excerpt":{"rendered":"<p>\u4e3a\u5b9e\u73b0\u4e09\u89d2\u7f51\u683c\u8868\u9762\u91cd\u5efa\uff0copen3d.geometry.TriangleMesh\u63d0\u4f9b\u4e86\u591a\u79cd\u65b9\u5f0f\u3002<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[22],"tags":[],"_links":{"self":[{"href":"https:\/\/www.yatenglg.cn\/blog\/index.php?rest_route=\/wp\/v2\/posts\/2182"}],"collection":[{"href":"https:\/\/www.yatenglg.cn\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.yatenglg.cn\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.yatenglg.cn\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yatenglg.cn\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2182"}],"version-history":[{"count":21,"href":"https:\/\/www.yatenglg.cn\/blog\/index.php?rest_route=\/wp\/v2\/posts\/2182\/revisions"}],"predecessor-version":[{"id":2914,"href":"https:\/\/www.yatenglg.cn\/blog\/index.php?rest_route=\/wp\/v2\/posts\/2182\/revisions\/2914"}],"wp:attachment":[{"href":"https:\/\/www.yatenglg.cn\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2182"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.yatenglg.cn\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2182"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.yatenglg.cn\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2182"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}