Hi to everyone. Today I’m involved in a pipeline that uses ExtractCenterline module to programmatically generate one centerline from one vessel. This pipeline regenerates the segment several times until the final segment is done. I’m sure that in the first steps the segment is not topologically closed and for sure doesn’t ensure the requirements needed from create a centerline, but at this point I’m quite concern with this two warnings:
The first one, which appears dozens of times per step:
[VTK] Generic Warning: In vtkMath.cxx, line 591
[VTK] Unable to factor linear system
And the second one, which only appears sometimes.
[VTK] Warning: In vtkDelaunay3D.cxx, line 526
[VTK] vtkDelaunay3D (000002B9B69AECA0): 522 degenerate triangles encountered, mesh quality suspect
Now some technical details:
OS: Windows 11.
Slicer’s version: 5.6.2
Code used:
def extractCenterline(endPointsMarkupsNode, segmentationNode, segmentID,centerlineName):
extractLogic = ExtractCenterline.ExtractCenterlineLogic()
# Preprocess the surface
inputSurfacePolyData = extractLogic.polyDataFromNode(segmentationNode, segmentID)
targetNumberOfPoints = 5000.0
decimationAggressiveness = 2.5 # I had to lower this to 3.5 in at least one case to get it to work, 4 is the default in the module
subdivideInputSurface = False
preprocessedPolyData = extractLogic.preprocess(inputSurfacePolyData, targetNumberOfPoints, decimationAggressiveness, subdivideInputSurface)
# Extract the centerline
centerlineCurveNode = slicer.mrmlScene.AddNewNodeByClass("vtkMRMLMarkupsCurveNode", centerlineName)
centerlinePolyData, _ = extractLogic.extractCenterline(preprocessedPolyData, endPointsMarkupsNode)
centerlinePropertiesTableNode = False
extractLogic.createCurveTreeFromCenterline(centerlinePolyData, centerlineCurveNode, centerlinePropertiesTableNode)
return centerlineCurveNode
What I’m wondering is:
- What means each of this warnings?
- Can I mute the messages in the console?
- Can I do anything to avoid this warnings (smooth the geometry, make it thinner or fatter…)
To be clear the code runs well, and ExtractCenterline works as I expect, but I want to understand better the situation.
Thanks a lot.