[ITK] [ITK-users] itkSmoothingQuadEdgeMeshFilter Help!!
Arnaud Gelas
arnaudgelas at gmail.com
Thu Aug 7 04:52:53 EDT 2014
Hi Malik,
First of all, I would recommend using MeshFileReader instead of VTKPolyDataReader (I guess VTKPolyDataReader will be deprecated in near future?).
Regarding now the smoothing procedure in itself. This class definitively misses some documentation and I will be adding some in the next few days (mainly extracted from the corresponding insight journal).
At the end of each iteration, when the delaunay conforming flag is turned ON, the conformation is performed. So depending on the mesh configuration, mesh size and number of iterations, it can take ages…
How large is your input mesh (number of points)?
You can also check results, by running first a smoothing without delaunay conforming, then apply a delaunay conforming on the output. Results won't be as nice, but you should get significant speed improvement.
Another possibility is to first do a clean poly data in vtk, with a small threshold to remove small edges in the input meshes (which results in lots of edge flipping after smoothing).
HTH
Arnaud
On Aug 6, 2014, at 10:42 AM, Mallikarjun K <mallikarjun49 at gmail.com> wrote:
> Hi All,
>
> Can anyone suggest me if anything wrong I am doing in this below pipeline ,Where I used itkVtkPolydataReader to convert vtk Surface polydata to Itk QuadedgeMesh. Execution loop is being hung up for sometime(4 to 5 mins in release mode) at itkVtkPolydataReader .
>
>
> ////
>
> typedef itk::QuadEdgeMeshTraits<double, 3,double, double, double,double > qetraits;
>
> typedef itk::QuadEdgeMesh< vtkFloatingPointType, 3,qetraits > MeshType;
>
> itk::OnesMatrixCoefficients< MeshType > coeff0;
>
> typedef itk::VTKPolyDataReader< MeshType >VTKPolyDataReaderType;
> //typedef itk::VTKPolyDataWriter< MeshType >VTKPolyDataWriterType;
>
> //VTKPolyDataWriterType::Pointer ItkToVtkWriter=VTKPolyDataWriterType::New();
> VTKPolyDataReaderType::Pointer VtkToItkReader=VTKPolyDataReaderType::New();
>
> VtkToItkReader->SetFileName("abc.vtk");
> VtkToItkReader->Update();
>
> typedef itk::SmoothingQuadEdgeMeshFilter< MeshType, MeshType >
> SmoothingQuadEdgeMeshFilter;
>
> SmoothingQuadEdgeMeshFilter::Pointer QEMeshSmoother = SmoothingQuadEdgeMeshFilter::New();
>
>
> QEMeshSmoother->SetInput(VtkToItkReader->GetOutPut());
> QEMeshSmoother->SetNumberOfIterations(5 );
> QEMeshSmoother->SetRelaxationFactor( 0.5 );
> QEMeshSmoother->SetDelaunayConforming(true );
> QEMeshSmoother->SetCoefficientsMethod( &coeff0 );
>
> QEMeshSmoother->Update();
>
> ////
>
>
> On Fri, Aug 1, 2014 at 4:36 PM, Mallikarjun K <mallikarjun49 at gmail.com> wrote:
> Thanks Bill for your answer.
>
> The reason I am using this pipeline is that SmoothingQEMeshFilter has an additional parameter for smoothing which is delaunay conforming which helps to optimize aspect ratio of triangles while smoothing and thus produces better output.Is there anything similar filter in the vtk pipeline.I used vtkWindowedSincPolydatafilter which is not giving the output as good as QEMeshSmoothing filter.
>
> Thanks for your help
>
>
> On Thu, Jul 31, 2014 at 5:14 PM, Bill Lorensen <bill.lorensen at gmail.com> wrote:
> If you have it in vtk, I suggest using the vtk pipeline to smooth the data.
>
> On Thu, Jul 31, 2014 at 1:35 AM, Mallikarjun K <mallikarjun49 at gmail.com> wrote:
> > Hi Bill,
> > Thanks for the replay.
> >
> > Yes,I built both ITK and my app with Release ,I forgot to mention it in the
> > previous post.Actually the data set is the output of
> > vtkDiscreteMarchingCubes algorithm(around 5MB) and need to smooth .I saved
> > this marching cube's output as .vtk file and read it using
> > itkVTKPolyDataReader and then I am giving this reader's output to
> > itkSmoothingQuadEdgeMeshFilter's input.
> >
> > I checked the execution time of each step in the pipeline ,after
> > SmothingQEMeshFilter has got it's input ,it is taking time to process the
> > data.
> >
> > Thank you
> >
> >
> >
> > On Wed, Jul 30, 2014 at 9:29 PM, Bill Lorensen <bill.lorensen at gmail.com>
> > wrote:
> >>
> >> First, make sure you are building ITK and your app with Release. A
> >> Debug build can be 10-50 times slower.
> >>
> >>
> >> On Wed, Jul 30, 2014 at 10:18 AM, Mallikarjun K <mallikarjun49 at gmail.com>
> >> wrote:
> >> > Hi All,
> >> > I am using itkSmoothingQuadEdgeMeshFilter for Surface Mesh
> >> > smoothing.This
> >> > filter is giving good results what I expected but taking more execution
> >> > time.can any one suggest me to reduce the execution time( multi
> >> > threading
> >> > or any parameters to add/remove )?
> >> >
> >> > Below is the code snippet
> >> > ///////
> >> > typedef itk::QuadEdgeMeshTraits<double, 3,double, double, double,double
> >> > >
> >> > qetraits;
> >> > typedef itk::QuadEdgeMesh< vtkFloatingPointType, 3,qetraits > MeshType;
> >> >
> >> > //typedef itk::QuadEdgeMesh< vtkFloatingPointType, 3 > MeshType;
> >> >
> >> > itk::OnesMatrixCoefficients< MeshType > coeff0;
> >> >
> >> > typedef itk::SmoothingQuadEdgeMeshFilter< MeshType, MeshType >
> >> > SmoothingQuadEdgeMeshFilter;
> >> >
> >> > SmoothingQuadEdgeMeshFilter::Pointer QEMeshSmoother =
> >> > SmoothingQuadEdgeMeshFilter::New();
> >> >
> >> > QEMeshSmoother->SetInput("abc.vtk");
> >> > QEMeshSmoother->SetNumberOfIterations(5 );
> >> > QEMeshSmoother->SetRelaxationFactor( 0.5 );
> >> > QEMeshSmoother->SetDelaunayConforming(true );
> >> > QEMeshSmoother->SetCoefficientsMethod( &coeff0 );
> >> > QEMeshSmoother->Update();
> >> > ////
> >> >
> >> > --
> >> > Regards:
> >> > Mallik
> >> >
> >> >
> >> > _____________________________________
> >> > Powered by www.kitware.com
> >> >
> >> > Visit other Kitware open-source projects at
> >> > http://www.kitware.com/opensource/opensource.html
> >> >
> >> > Kitware offers ITK Training Courses, for more information visit:
> >> > http://www.kitware.com/products/protraining.php
> >> >
> >> > Please keep messages on-topic and check the ITK FAQ at:
> >> > http://www.itk.org/Wiki/ITK_FAQ
> >> >
> >> > Follow this link to subscribe/unsubscribe:
> >> > http://public.kitware.com/mailman/listinfo/insight-users
> >> >
> >>
> >>
> >>
> >> --
> >> Unpaid intern in BillsBasement at noware dot com
> >
> >
> >
> >
> > --
> > Regards:
> > Mallik
> >
>
>
>
> --
> Unpaid intern in BillsBasement at noware dot com
>
>
>
> --
> Regards:
> Mallik
>
>
>
>
> --
> Regards:
> Mallik
>
> _____________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://www.kitware.com/products/protraining.php
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/insight-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/community/attachments/20140807/1f21c8dd/attachment-0002.html>
-------------- next part --------------
_____________________________________
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Kitware offers ITK Training Courses, for more information visit:
http://www.kitware.com/products/protraining.php
Please keep messages on-topic and check the ITK FAQ at:
http://www.itk.org/Wiki/ITK_FAQ
Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/insight-users
More information about the Community
mailing list