[vtkusers] Outer surface
David.Pont at ForestResearch.co.nz
David.Pont at ForestResearch.co.nz
Sun Feb 1 14:55:26 EST 2004
Salut Perrine,
This had me thinking too... not easy... is it actually one surface
(topologically) with holes? or given segmentation, probably one or more
chunks like that?
If so, my 2c thought was:
get Center for the dataset (somewhere inside the skull)
for each cell, calculate dot product of cell normal with vector from
dataset Centre to cell Centre
if <= 0 discard the cell
This would remove 'inward' facing cells. May want to try values 'around' 0
(if so normalise the vector) to control behaviour at the 'edges'. Could
manually specify dataset 'Centre'...
Dave P
"John Biddiscombe"
<jbiddiscombe at skippingm To: "Perrine PAUL" <perrine.paul at chu-rennes.fr>,
ouse.co.uk> <vtkusers at vtk.org>
Sent by: cc:
vtkusers-admin at vtk.org Subject: Re: [vtkusers] Outer surface
31/01/2004 02:47
NB. This assumes closed surfaces. If the surfaces aren't closed, it's not
obvious what's in and wha'ts out.
----- Original Message -----
From: "John Biddiscombe" <john.biddiscombe at mirada-solutions.com>
To: "Perrine PAUL" <perrine.paul at chu-rennes.fr>; <vtkusers at vtk.org>
Sent: Friday, January 30, 2004 12:17 PM
Subject: RE: [vtkusers] Outer surface
For each cell in polydata
Find cell normal
Fire ray from point (cell centre + epsilon*normal) to {x,y,+infinity}
Count number of itersections of ray along path
if number odd. Cell interior - kill it
if number even (or zero), cell on surface. Keep it
End loop
(For best results, do three rays, in +x, +y, +z directions to minimize
chance of ray passinng through crack between edges of polygons, use
tolerance carefully).
Use vtkCellLocator + IntersectWith line + some custom checks to get all
intersections instead of just first one.
JB
> -----Original Message-----
> From: vtkusers-admin at vtk.org [mailto:vtkusers-admin at vtk.org]
> On Behalf Of Perrine PAUL
> Sent: 29 January 2004 16:36
> To: vtkusers at vtk.org
> Subject: [vtkusers] Outer surface
>
>
> Hello everyone,
> I have a skull surface (in VTK format) segmented from a CT
> scan. The problem is: since the skull has a thickness, my
> surface is composed of 2 connected surfaces, I call them the
> outer and the inner surfaces. I would like to build a new
> polydata with only the outer surface. Do you have any idea
> about how do that? Cheers, Perrine
>
> --
> Perrine PAUL - PHD Student
> +33 2 23 23 49 91
> Laboratoire IDM, http://idm.univ-rennes1.fr
> Université de Rennes 1, Faculté de médecine
>
> _______________________________________________
> This is the private VTK discussion list.
> Please keep messages on-topic. Check the FAQ at:
> <http://public.kitware.com/cgi-> bin/vtkfaq>
> Follow this link
> to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
>
_______________________________________________
This is the private VTK discussion list.
Please keep messages on-topic. Check the FAQ at:
<http://public.kitware.com/cgi-bin/vtkfaq>
Follow this link to subscribe/unsubscribe:
http://www.vtk.org/mailman/listinfo/vtkusers
_______________________________________________
This is the private VTK discussion list.
Please keep messages on-topic. Check the FAQ at: <
http://public.kitware.com/cgi-bin/vtkfaq>
Follow this link to subscribe/unsubscribe:
http://www.vtk.org/mailman/listinfo/vtkusers
More information about the vtkusers
mailing list