example of surface profiling in slam

# Authors: Tianqi SONG <tianqisong0117@gmail.com>

# License: MIT
# sphinx_gallery_thumbnail_number = 2

importation of slam modules

import numpy as np
import slam.surface_profiling as surfpf
import slam.io as sio

loading an example mesh

mesh = sio.load_mesh("../examples/data/example_mesh.gii")

Select a vertex and get the coordinate and normal.

vert_index = 1000
vert0 = mesh.vertices[vert_index]
norm0 = mesh.vertex_normals[vert_index]

Set the parameters for surface profiling initial direction of rotation, rotation angle, length and number of sampling steps

init_rot_dir = np.array([1, 1, 1]) - vert0
rot_angle = 10
r_step = 0.1
max_samples = 45

Surface profiling

profile_points = surfpf.surface_profiling_vert(
    vert0, norm0, init_rot_dir, rot_angle, r_step, max_samples, mesh
)

VISUALIZATION USING EXTERNAL TOOLS

# Visualize result prof_points_mesh = profile_points.reshape(

profile_points.shape[0] * profile_points.shape[1], 3

) prof_points_colors = np.zeros(prof_points_mesh.shape) points_mesh = trimesh.points.PointCloud(

prof_points_mesh, colors=np.array(prof_points_colors, dtype=np.uint8)

) # set the points colors red, yellow, green, blue = [

[255, 0, 0, 255], [255, 255, 0, 255], [0, 255, 0, 255], [0, 0, 255, 255],

] color_i = np.zeros(4) for i in range(len(prof_points_mesh)):

degree = i / max_samples num_profiles = int(360 / rot_angle) segment_color = num_profiles / 3

if degree <= segment_color:
color_i = trimesh.visual.color.linear_color_map(

degree / segment_color, [red, yellow]

)

elif segment_color < degree <= segment_color * 2:
color_i = trimesh.visual.color.linear_color_map(

degree / segment_color - 1, [yellow, green]

)

elif segment_color * 2 < degree <= num_profiles:
color_i = trimesh.visual.color.linear_color_map(

degree / segment_color - 2, [green, blue]

)

points_mesh.colors[i] = np.array(color_i)

# create a scene with the mesh and profiling points scene = trimesh.Scene([points_mesh, mesh]) scene.show(smooth=False)

Total running time of the script: (0 minutes 0.049 seconds)

Gallery generated by Sphinx-Gallery