ISS (Intrinsic Shape Signature) 算法是一种用于点云特征提取的算法,通常用于检测点云中的关键点。关键点是点云中具有显著特征的位置,它们通常对于点云处理任务(如配准、分类、分割等)非常有用。
ISS 算法根据点云的曲率和法向量等信息,通过计算点云中每个点的 ISS 值来确定关键点。ISS 值越高,表示该点在点云中具有更显著的形状特征。
然而,ISS 算法并不仅限于关键点的检测。它也可以用于其他点云处理任务,例如特征匹配、特征描述等。ISS 算法提取的关键点可以作为点云中的参考点,用于计算点云之间的配准变换或描述点云的局部结构。
armadillo = o3d.data.ArmadilloMesh()
mesh = o3d.io.read_triangle_mesh(armadillo.path)
mesh.compute_vertex_normals()
pcd = o3d.geometry.PointCloud()
pcd.points = mesh.vertices
tic = time.time()
keypoints = o3d.geometry.keypoint.compute_iss_keypoints(pcd)
toc = 1000 * (time.time() - tic)
print("ISS Computation took {:.0f} [ms]".format(toc))
mesh.compute_vertex_normals()
mesh.paint_uniform_color([0.5, 0.5, 0.5])
keypoints.paint_uniform_color([1.0, 0.75, 0.0])
o3d.visualization.draw_geometries([keypoints, mesh], front=[0, 0, -1.0])
手册中给的代