Hi David,
 from our experience, although it looks like a reasonable "reference point", 
the junction point is quite sensitive to minor surface 
features. In other words, it could be located differently for surfaces that 
look quite similar. Try for instance to smooth the surface,
the junction point will likely move. This is why we came up with the notion of 
reference points and bifurcation reference systems.
However, the junction point can be useful in specific situations (see for 
instance the last paper from Marina Piccinelli on aneurysm
removal and neck plane definition).

Now, the above is just for your information, but it doesn't change the fact 
that you probably need the damned junction point anyway!

Currently there is no script that extracts it, but there is actually code in 
vmtk/vmtkApps/CerebralAneurysms/ParentVesselReconstruction/patchandinterpolatecenterlines.py

for it. In particular, take a look at the following:

def FindClippingPointOnParentArtery(centerlines,parentCenterlines,toll):
   divergingPointID = -1
   divergingPoint = [0.0,0.0,0.0]
   divergingPointMISR = -1

   clippingPointID = -1
   clippingPoint = [0.0,0.0,0.0]

   cell0PointIds = vtk.vtkIdList()
   cell1PointIds = vtk.vtkIdList()

   centerlines.GetCellPoints(0,cell0PointIds) #this is the cl that goes through 
the aneurysm
   centerlines.GetCellPoints(1,cell1PointIds)

   for i in 
range(0,min(cell0PointIds.GetNumberOfIds(),cell1PointIds.GetNumberOfIds())):
      cell0Point = centerlines.GetPoint(cell0PointIds.GetId(i))
      cell1Point = centerlines.GetPoint(cell1PointIds.GetId(i))

      distanceBetweenPoints = 
math.sqrt(vtk.vtkMath.Distance2BetweenPoints(cell0Point,cell1Point))
      if (distanceBetweenPoints>toll):
        divergingPointID = cell1PointIds.GetId(i)
        divergingPoint = centerlines.GetPoint(cell1PointIds.GetId(i))
        divergingPointMISR = 
centerlines.GetPointData().GetArray(radiusArrayName).GetTuple1(cell1PointIds.GetId(i))
        break

   MISphere = vtk.vtkSphere()
   MISphere.SetCenter(divergingPoint)
   MISphere.SetRadius(divergingPointMISR)
   tempPoint = [0.0,0.0,0.0]

   for i in range(divergingPointID,0,-1):
      value = MISphere.EvaluateFunction(centerlines.GetPoint(i))
      if (value>=0.0):
         tempPoint = centerlines.GetPoint(i)
         break

   locator = vtk.vtkPointLocator()
   locator.SetDataSet(parentCenterlines)
   locator.BuildLocator()

   clippingPointID = locator.FindClosestPoint(tempPoint)
   clippingPoint = parentCenterlines.GetPoint(clippingPointID)

   return clippingPoint,divergingPoint


Hope this helps


Luca


On Jun 12, 2012, at 5:56 PM, David Roy wrote:

> Dear All, 
> 
> I'm dealing with abdominal aortic aneurysms, and I need to identify the 
> centerline and split it 
> at the junction point (indicated on the attached image), thus ending with 
> exactly three branches.
> 
> Following the tutorials, I've been able to draw a composite centerline, as 
> shown on the same 
> image, however that's not exactly what I need. 
> 
> Please, could anyone let me know if it is possible to cut the centerline 
> exactly at the junction point, 
> and if so, how to do it. 
> 
> 
> Thanks in advance
> D. R. 
> <AAA_Centerlines.png>------------------------------------------------------------------------------
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and 
> threat landscape has changed and how IT managers can respond. Discussions 
> will include endpoint security, mobile security and the latest in malware 
> threats. 
> http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/_______________________________________________
> vmtk-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/vmtk-users

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
vmtk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/vmtk-users

Reply via email to