[Insight-users] Normal overlap
Niccolo' Camarlinghi
niccolo.camarlinghi at pi.infn.it
Mon Sep 8 06:03:10 EDT 2008
Dear all,
I'm trying to evaluate normals to a surface.
I red an mail about this topic
http://www.itk.org/pipermail/insight-users/2008-June/026137.html , but i
was wondering if the extraction of the normals can be implemented using
simplex mesh that has a public method to compute normal at each node.
When i compute one normal i got segfault in the last line of the
allegated code, someone can tell me if i'm doing a no sense operation?
Many thanks
Niccolo' Camarlinghi
InputImageType::RegionType regione;
InputImageType::SizeType size;
InputImageType::IndexType index;
size[0]=100;
size[1]=100;
size[2]=100;
index[0]=0;
index[1]=0;
index[2]=0;
regione.SetSize(size);
regione.SetIndex(index);
img->SetRegions(regione);
img->Allocate();
InputIteratorType it(img,regione);
//create a sphere for extracting a surface
for (it.GoToBegin();!it.IsAtEnd();++it)
{
InputImageType::IndexType point=it.GetIndex();
if ((point[0]-50)*(point[0]-50)+
(point[1]-50)*(point[1]-50)+(point[2]-50)*(point[2]-50)>100)
{
it.Set(0);
}
else
it.Set(1);
}
typedef itk::DefaultDynamicMeshTraits< float, 3, 3, float, float,
float> MeshTraits;
typedef itk::SimplexMesh<double,3,MeshTraits> SimplexMeshType;
typedef itk::BinaryMask3DMeshSource< InputImageType, SimplexMeshType >
MeshSourceType; // this templated is defined with SimplexMeshType???
MeshSourceType::Pointer meshSource = MeshSourceType::New();
meshSource->SetInput(img);
meshSource->Update();
SimplexMeshType::Pointer simp;
simp=meshSource->GetOutput();
std::cout << "Number of cells"<< std::endl;
std::cout<<simp->GetNumberOfCells()<<std::endl;
std::cout << "Computer normal"<< std::endl;
std::cout << simp->ComputeNormal(1) <<std::endl; // here i got the
segfault , the index in the method is the number of the chosen cell?
More information about the Insight-users
mailing list