| Extracts a curvature/thickness etc information from a FreeSurfer style scalar file and adds it as attribute to the vtk mesh for visualization. FS format is line-by-line, no header, with each line 'point-id vertex-x vertex-y vertex-z scalar-prop

| Extracts a curvature/thickness etc information from a FreeSurfer style scalar file and adds it as attribute to the vtk mesh for visualization. FS format is line-by-line, no header, with each line 'point-id vertex-x vertex-y vertex-z scalar-prop

| SingleMesh

| SingleMesh

−

| {{Done}}

+

| {{Not Done}}

−

| Check in with @styner to see if he can provide data to test this, or if he wants to keep it

+

| Needs to be replaced by a conversion tool that allows VTK/Slicer and GIFTI (the new surface standard that FS is using with their newest versions, connectome projects are using only GIFTI)

|-

|-

| surfaceArea

| surfaceArea

Line 309:

Line 309:

| SingleMesh

| SingleMesh

| {{Done}}

| {{Done}}

−

| Keep with modifications. Check in with @styner

+

| Keep with modifications. (styner: I think this can be removed)

|-

|-

| VTKtoLpts

| VTKtoLpts

Revision as of 15:34, 10 June 2019

Contents

Overview

As part of the SALT project we would like to revamp some of the existing functionality in MeshMath into the SurfaceToolbox. We will be hiring a summer intern to work on this over a couple of months this summer.

Definitions

Initial discussions

We will be potentially implementing individual CLIs for each functionality in MeshMath, and those will be plugged into the Surface Toolbox.

We would like to add a parameter node so if you save the scene and reload then all the node and parameter selections that you have made are not lost
Enclose all functionality in C++ little CLIs that can be called from the python infrastructure, so they can be used from any modules
Do the same thing for the functionality in MeshMath, creating independent CLIs and modules

Find the points and cells in a mesh. The outputfile is a textfile with the values

SingleMesh

Export through CSV

avgGaussMesh

<Meshfile1> <Meshfile2> ... -gaussMeshPara <mean>,<stdev>,<val1>,<val2>,... Compute the gaussian average for mesh files. The first parameter is the average, then the standard deviation of the Gaussian model and the rest are the values associated with the files

MultipleMesh

avgGaussKWM

Compute the gaussian average for KWMeshVisu files. The first parameter is the average, then the standard deviation of the Gaussian model and the rest are the values associated with the files

MeshScalar Operation

See "ave"

alignMesh

Align all of the meshes to the inputmesh (== MeshFile0) using Procrustes alignment [-scalingOn]

MultipleMesh

Fix the scaling, give an option to export the scaling factors associated with the mesh (so it can be reverted via scaleMesh)

alignMeshICP

Align all of the meshes to the inputmesh (== MeshFile0) using IterativeClosestPoints (no correspondence required)

MultipleMesh

BadTriangle

Find the bad triangles in a Mesh. The <thresh value> is the value of the threshFactor to calculate the standard deviation for the bad triangles. The output is a KWMeshVisu text file with the values of the average of the triangles of the mesh

SingleMesh

Probably not keep since this is the same than "Clean" in the SurfaceToolbox

extraction

To extract an attribute.The Input is the Mesh, the extractFilename is the attribute image and the Output is a KWMeshVisu text file with the attribute extraction [-extractClosest]: extract closest attribute [-nn]: nearest neighbor interpolation (default: linear)

MeshToVolume

value

Extract the 5th column from a textfile and write a KWMeshVisu file with the values obtained

SingleMesh

Turn into "import from file" or something similar. This new operation would import a scalar field from a csv file into a mesh

subKWM

Difference between 2 KWMeshVisu files

MeshScalar Operation

See "ave"

MaxColor

Compare each point in every files, find a max for every points, keep 5% near the max, the other values will be 0

MeshScalar Operation

Transform this into a Threshold scalar map

dist_absolute

Absolute distance map between KWMeshVisu files

MeshScalar Operation

Transform this into something better, something that can operate over several scalar maps

Transform this into something better, "normalize scalar map", and give the option to set up the range

label

Separate every labels, find the mean...

MeshScalar Operation

This will be changed into a different module. The module will list all the scalar fields in the Mesh

color -val <number_of_label>,<value_label>

To change the value of labels to see the evolution with KWMeshVisu.

MeshScalar Operation

This will not be kept as it has legacy operations

first <textfile>

Convert a column file into a line file with a comma between each value.

Random

This will not be kept as it should not be here.

MC2Origin

Convert a column file into a line file with a comma between each value.

SingleMesh

avg/median/min/max/per1/per99OneKWM

Obtain descriptive statistics from scalar fields in a single VTK mesh

SingleMesh / ScalarMesh Operation

Keep with modifications, arguments should be the scalar field name and the operation to perform. Might revisit later, most of this functionality is in MeshStatistics

FillHole

Fills up a hole in a open mesh.

SingleMesh

Slight change it should close all the open holes until there are no more

BordersOut

Outputs the borders of a mesh (if there)

SingleMesh

isOpen

Gives back an integer defining whether the mesh is open or not

SingleMesh

Probably not keep, will revisit later

CleanMesh

Re-mesh the input mesh and gives back a new clean mesh without degenerated triangles

SingleMesh

Already in the surface toolbox

SmoothMesh

Gives back a Laplacian smoothed surface

SingleMesh

Already in the surface toolbox

FilterNormals

Changes homogeneously normals of the polygons in a mesh

SingleMesh

Already in the surface toolbox

StatsROI

Process a KWMeshVisu file, given a ROI Mask

MeshScalar operation

Already in Slicer through Pick and Pain and MeshStatistics

KWMToPolyData

Writes a KWM scalar field (N Dimensions) into a PolyData Field Data Scalar to visualize in Slicer

SingleMesh

Keep with modifications, the scalar field can be input in a csv, it does not need to be a KWM file

FSAscData

Extracts a curvature/thickness etc information from a FreeSurfer style scalar file and adds it as attribute to the vtk mesh for visualization. FS format is line-by-line, no header, with each line 'point-id vertex-x vertex-y vertex-z scalar-prop

SingleMesh

Needs to be replaced by a conversion tool that allows VTK/Slicer and GIFTI (the new surface standard that FS is using with their newest versions, connectome projects are using only GIFTI)

surfaceArea

Computes surface area in a txt file

SingleMesh

Keep with modifications, we should create an option to extract vtkMassProperties from a single Mesh including surface area and volume

variance/mean/attSTD

Compute variance across population of scalar fields

Multiple MeshScalar (multiple Mesh)

Keep with modifications, we should compute variance in a scalar field given the scalar field name and a collection of meshes

GetCurvatures

Gets an assorted set of curvature measurements:

SingleMesh

Keep with modifications, embed the attributes as scalar fields in the mesh

particleConsistency

Generates new particle files where fliped particles does not appear

MultipleMesh

ShapeWorks functionality, do not keep

GetDirectionFeatures

Generates three KWM loadable files that have directionality features with respect to X, Y and Z directions

SingleMesh

closestPoint

Computes interpolated attribute file (output file) for second mesh using closest point interpolation between two input meshes

Multiple Mesh

Keep with modifications. Two meshes, one target and one source with the source having the scalar field that needs to be transferred into target