Exemplo n.º 1
0
import trimeshpy
from trimeshpy.trimesh_vtk import TriMesh_Vtk
from trimeshpy.trimeshflow_vtk import TriMeshFlow_Vtk
from trimeshpy.vtk_util import lines_to_vtk_polydata, save_polydata

# Test files
file_name = trimeshpy.data.brain_lh

mesh = TriMesh_Vtk(file_name, None)
triangles = mesh.get_triangles()
vertices = mesh.get_vertices()
mesh.display(display_name="Trimeshpy: Initial Mesh")

# pre-smooth
vertices = mesh.laplacian_smooth(2, 10.0, l2_dist_weighted=False, area_weighted=False, backward_step=True, flow_file=None)
mesh.set_vertices(vertices)
mesh.display(display_name="Trimeshpy: Smoothed Mesh")

tri_mesh_flow = TriMeshFlow_Vtk(triangles, vertices)

# Test parameters
nb_step = 10
diffusion_step = 10
saved_flow = trimeshpy.data.output_test_flow
saved_fib = trimeshpy.data.output_test_fib

# Test functions
start = time.time()
#points = tri_mesh_flow.laplacian_smooth(nb_step, diffusion_step, l2_dist_weighted=False, area_weighted=False, backward_step=False, flow_file=saved_flow)
#points = tri_mesh_flow.curvature_normal_smooth(nb_step, diffusion_step, area_weighted=True, backward_step=True, flow_file=saved_flow)
Exemplo n.º 2
0
print args.nb_step, "step of size ", args.step_size
print param_str

# mask step size
if args.mask is not None:
    mask = np.load(args.mask)
    step_size = args.step_size * mask
else:
    step_size = args.step_size

mesh = TriMesh_Vtk(surface_file_in, None)
smooth_vertices = mesh.laplacian_smooth(
                    nb_iter=args.nb_step, 
                    diffusion_step=step_size, 
                    l2_dist_weighted=args.dist_weighted, 
                    area_weighted=args.area_weighted, 
                    backward_step=not(args.forward_step), 
                    flow_file=None)


smoothed_mesh = TriMesh_Vtk(mesh.get_triangles(), smooth_vertices)


# Save
smoothed_mesh.save(surface_file_out)

# Display
if args.vi:
    mesh.display('input surface')
    
Exemplo n.º 3
0
    if voxel_space[1] != 'P':
        new_vertice[:,1] = -new_vertice[:,1]
    if voxel_space[2] != 'S':
        new_vertice[:,2] = -new_vertice[:,2]
    mesh.set_vertices(new_vertice)
    
if args.fx or args.fy or args.fz:
    flip = [-1 if args.fx else 1, 
            -1 if args.fy else 1,
            -1 if args.fz else 1]
    print "flip:", flip
    f_triangles, f_vertices = mesh.flip_triangle_and_vertices(flip)
    mesh.set_vertices(f_vertices)
    mesh.set_triangles(f_triangles)

# smooth
if args.smooth is not None:
    new_vertice = mesh.laplacian_smooth(1, args.smooth, l2_dist_weighted=False, area_weighted=False, backward_step=True)
    mesh.set_vertices(new_vertice)

if args.out_surface is not None:
    mesh.save(args.out_surface)
    
# view 
if args.v:
    mesh.update_polydata()
    mesh.update_normals()
    mesh.display()