第九次作业整理(open3d/20211119)

2024-04-21 08:48

本文主要是介绍第九次作业整理(open3d/20211119),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

三维空间建模

安装包-open3d

错误解决

多种点云方法

多角度点云拼接在一起生成整个点云

近邻搜索

 混合搜索

 法向量估计-目的:生成三维片面结构

 三角片面生成


三维空间建模

三维空间什么都没有,摄像机视角即为人眼视角,默认材质近似纸张

安装包-open3d

!pip install open3d

错误解决

报错

ERROR: Cannot uninstall 'PyYAML'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

错误解决

!pip install --ignore-installed PyYAML

再次安装open3d,成功安装

多种点云方法

使用素材:斯坦福兔子

多角度点云拼接在一起生成整个点云

import open3d as o3d
import numpy as npprint("Open3D read Point Cloud")
pcd=o3d.io.read_point_cloud(r"/Users/mac/Desktop/courses/ad/python/20211119/bunny10k.ply")
print(pcd)o3d.visualization.draw_geometries([pcd],width=800,height=600)

共有6164个点

近邻搜索

以某一点为中心进行搜索

在选择中心点时应注意,不能超过6164

import open3d as o3d
import numpy as npprint("Open3D read Point Cloud")
pcd = o3d.io.read_point_cloud(r"/Users/mac/Desktop/courses/ad/python/20211119/bunny10k.ply")
pcd.paint_uniform_color([0.5, 0.5, 0.5])#将所有点设置为灰色pcd_tree = o3d.geometry.KDTreeFlann(pcd)
pcd.colors[100] = [1, 0, 0]#设置第100个点为红色[k, idx, _] = pcd_tree.search_knn_vector_3d(pcd.points[100],100)#搜索第100个点周边的100个点
np.asarray(pcd.colors)[idx[1:], :] = [0, 1, 0]#将周边的点设置为绿色o3d.visualization.draw_geometries([pcd],width=1200,height=1000)

 混合搜索

要同时告知半径

import open3d as o3d
import numpy as npprint("Open3D read Point Cloud")
pcd=o3d.io.read_point_cloud("/Users/mac/Desktop/courses/ad/python/20211119/bunny10k.ply")
pcd.paint_uniform_color([0.5,0.5,0.5])
pcd_tree=o3d.geometry.KDTreeFlann(pcd)
pcd.colors[2000]=[1, 0, 0]
[k2, idx2, _]=pcd_tree.search_hybrid_vector_3d(pcd.points[2000],0.05,200)
np.asarray(pcd.colors)[idx2[1:], :] = [0, 1, 0.8]
o3d.visualization.draw_geometries([pcd],width=1200,height=1000)

 

 法向量估计-目的:生成三维片面结构

import open3d as o3d
import numpy as npprint("Open3D read Point Cloud")
pcd = o3d.io.read_point_cloud(r"/Users/mac/Desktop/courses/ad/python/20211119/bunny10k.ply")
print(pcd)
dumppcd = pcd.voxel_down_sample(voxel_size=0.01)  #下采样(降采样)dumppcd.estimate_normals(search_param=o3d.geometry.KDTreeSearchParamHybrid(radius=0.01,max_nn=30))print(dumppcd.normals[0])
print(np.asarray(dumppcd.normals)[:10,:])o3d.visualization.draw_geometries([dumppcd],point_show_normal=True,window_name="法线估计", width=1200,height=1000,                                mesh_show_back_face=False)

 使用command+或command-,可以缩放

 三角片面生成

import open3d as o3d
# import open3d_tutorial as o3dtut
import numpy as npprint("Open3D read Point Cloud")
pcd = o3d.io.read_triangle_mesh(r"/Users/mac/Desktop/courses/ad/python/20211119/bunny10k.ply")  #newrabbit.pcd")
print(pcd)
pcd.compute_vertex_normals()
pcdmesh = pcd.sample_points_poisson_disk(3000)
o3d.visualization.draw_geometries([pcdmesh],point_show_normal=True)radii=[0.005, 0.01, 0.02, 0.04]ballmesh = o3d.geometry.TriangleMesh.create_from_point_cloud_ball_pivoting(pcdmesh,o3d.utility.DoubleVector(radii))
print(ballmesh)
o3d.visualization.draw_geometries([ballmesh])o3d.visualization.draw_geometries([pcd, ballmesh])

这篇关于第九次作业整理(open3d/20211119)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/922651

相关文章

JAVA数组中五种常见排序方法整理汇总

《JAVA数组中五种常见排序方法整理汇总》本文给大家分享五种常用的Java数组排序方法整理,每种方法结合示例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录前言:法一:Arrays.sort()法二:冒泡排序法三:选择排序法四:反转排序法五:直接插入排序前言:几种常用的Java数组排序

Spring Boot 常用注解整理(最全收藏版)

《SpringBoot常用注解整理(最全收藏版)》本文系统整理了常用的Spring/SpringBoot注解,按照功能分类进行介绍,每个注解都会涵盖其含义、提供来源、应用场景以及代码示例,帮助开发... 目录Spring & Spring Boot 常用注解整理一、Spring Boot 核心注解二、Spr

Mysql中深分页的五种常用方法整理

《Mysql中深分页的五种常用方法整理》在数据量非常大的情况下,深分页查询则变得很常见,这篇文章为大家整理了5个常用的方法,文中的示例代码讲解详细,大家可以根据自己的需求进行选择... 目录方案一:延迟关联 (Deferred Join)方案二:有序唯一键分页 (Cursor-based Paginatio

Mysql中InnoDB与MyISAM索引差异详解(最新整理)

《Mysql中InnoDB与MyISAM索引差异详解(最新整理)》InnoDB和MyISAM在索引实现和特性上有差异,包括聚集索引、非聚集索引、事务支持、并发控制、覆盖索引、主键约束、外键支持和物理存... 目录1. 索引类型与数据存储方式InnoDBMyISAM2. 事务与并发控制InnoDBMyISAM

StarRocks索引详解(最新整理)

《StarRocks索引详解(最新整理)》StarRocks支持多种索引类型,包括主键索引、前缀索引、Bitmap索引和Bloomfilter索引,这些索引类型适用于不同场景,如唯一性约束、减少索引空... 目录1. 主键索引(Primary Key Index)2. 前缀索引(Prefix Index /

作业提交过程之HDFSMapReduce

作业提交全过程详解 (1)作业提交 第1步:Client调用job.waitForCompletion方法,向整个集群提交MapReduce作业。 第2步:Client向RM申请一个作业id。 第3步:RM给Client返回该job资源的提交路径和作业id。 第4步:Client提交jar包、切片信息和配置文件到指定的资源提交路径。 第5步:Client提交完资源后,向RM申请运行MrAp

Open3D 基于法线的双边滤波

目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 输入参数: 输出参数: 参数影响: 2.2完整代码 三、实现效果 3.1原始点云 3.2滤波后点云 Open3D点云算法汇总及实战案例汇总的目录地址: Open3D点云算法与点云深度学习案例汇总(长期更新)-CSDN博客 一、概述         基于法线的双边

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题:

rtmp流媒体编程相关整理2013(crtmpserver,rtmpdump,x264,faac)

转自:http://blog.163.com/zhujiatc@126/blog/static/1834638201392335213119/ 相关资料在线版(不定时更新,其实也不会很多,也许一两个月也不会改) http://www.zhujiatc.esy.es/crtmpserver/index.htm 去年在这进行rtmp相关整理,其实内容早有了,只是整理一下看着方

笔记整理—内核!启动!—kernel部分(2)从汇编阶段到start_kernel

kernel起始与ENTRY(stext),和uboot一样,都是从汇编阶段开始的,因为对于kernel而言,还没进行栈的维护,所以无法使用c语言。_HEAD定义了后面代码属于段名为.head .text的段。         内核起始部分代码被解压代码调用,前面关于uboot的文章中有提到过(eg:zImage)。uboot启动是无条件的,只要代码的位置对,上电就工作,kern