python学习笔记3--python实现kdtree根据距离检索案例分享

环境:python3 、ubuntu20.04、vscode、open3d

前言:介绍使用python实现的kdtree检索例子

通过kdtree根据距离找点案例:

import numpy as np
import pandas as pd
import open3d as o3d
from pandas.core import frame

file_path = "/home/ylh/dataset/point_data.csv"	#点云文件csv(类似excel)

df = pd.read_csv(file_path)
point_mat = np.array(df)#把自己的df文件转为np格式

pc_pcd = o3d.geometry.PointCloud()#构建点云
#将自己点云构建一个容器结构,里面按一点一行形式保存经来,点数据内容为point_mat[:,2:5]取第2,3,4列
pc_pcd.points = o3d.utility.Vector3dVector(point_mat[:,2:5])
pcd_tree = o3d.geometry.KDTreeFlann(pc_pcd)#构建kdtree
#取第一个点为基准(根据个人情况进行设定,这里举例子而已),也就是检索点中心
query_point = point_mat[0,2:5]
#在基准点0.1米球半径范围检索点的数目
[k, idx, dis] = pcd_tree.search_radius_vector_3d(query_point, 0.1)
#k符合点的数目,idx表示点原行序号数组(返回时会自动按照从近到远排序的,数值指的是该点在csv文件中行号),dis距离基准点的距离,k是数字,后面两个是数组。这里仅供参考,由于原有的笔记本出问题,写blog这个本没有安装open3d,使用时可以打印输出测试一下知道其中的内容了
print(k)	#打印在检索范围内,符合条件的点个数。

流程小结:声明点云容器、往点云容器加点、对点云构树、设置检索圆心(基准点)、检索、获取检索结果

#####################
不积硅步,无以至千里
好记性不如烂笔头

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值