[vtkusers] ActiViz C# | Problem with vtkPolyDataConnectivityFilter

Matias Montroull matimontg at gmail.com
Thu Jan 16 16:52:14 EST 2014


I did this and I still get all points that contornos returns :( any idea
what I'm doing wrong?

      vtkPolyDataConnectivityFilter contornos = new
vtkPolyDataConnectivityFilter();
            contornos.SetInputConnection(skinextractor.GetOutputPort());
            contornos.SetExtractionModeToLargestRegion();
            contornos.SetColorRegions(1);

            vtkCleanPolyData removepoints = new vtkCleanPolyData();
            removepoints.SetInput(contornos.GetOutput());
            removepoints.Update();


On Thu, Jan 16, 2014 at 6:46 PM, Matias Montroull <matimontg at gmail.com>wrote:

> Thanks, so to which object I need to apply the vtkCleanPolyData? to my
> vtkpolydata?
>
>
> On Thu, Jan 16, 2014 at 6:25 PM, David Gobbi <david.gobbi at gmail.com>wrote:
>
>> The vtkPolyDataConnectivityFilter probably only removes cells,
>> not points.  Pass your data through vtkCleanPolyData after the
>> connectivity filter to get rid of any extra points.
>>
>> On Thu, Jan 16, 2014 at 2:19 PM, Matias Montroull <matimontg at gmail.com>
>> wrote:
>> > Hi,
>> >
>> > I have a problem trying to obtain the inner points of a 3D
>> reconstruction. I
>> > can visualize just fine but when I save the points and then re open to
>> see
>> > them, I still see the image as when it was without the DataConnectivity
>> > Filter. Why that may be? SkinNormals gets the output of the filter..
>> >
>> > here's the code:
>> >
>> >  vtkContourFilter skinextractor = vtkContourFilter.New();
>> >
>> skinextractor.SetInputConnection(readerdicom.GetOutputPort());
>> >             skinextractor.GetValues();
>> >             skinextractor.SetValue(0, -800);
>> >
>> >             vtkPolyDataConnectivityFilter contornos = new
>> > vtkPolyDataConnectivityFilter();
>> >             contornos.SetInputConnection(skinextractor.GetOutputPort());
>> >             contornos.SetExtractionModeToLargestRegion();
>> >             contornos.Update();
>> >             contornos.SetColorRegions(1);
>> >
>> >
>> >             vtkPolyDataNormals skinnormals = vtkPolyDataNormals.New();
>> >
>> //skinnormals.SetInputConnection(skinextractor.GetOutputPort());
>> >             skinnormals.SetInputConnection(contornos.GetOutputPort());
>> >             skinnormals.SetFeatureAngle(90.0);
>> >             skinnormals.ComputePointNormalsOn();
>> >
>> >             vtkPolyData polys = new vtkPolyData();
>> >             polys = skinnormals.GetOutput();
>> >             polys.Update();
>> >             polys.BuildCells();
>> >             int numberofpoints = polys.GetNumberOfPoints();
>> >
>> >             for (int i = 0; i < polys.GetNumberOfPoints(); i ++)
>> >             {
>> >                 double[] p = new double[3];
>> >                 p = polys.GetPoint(i);
>> >                 POI poi_mesh_individual = new POI();
>> >                 poi_mesh_individual.POI_x = Convert.ToDecimal(p[0]);
>> >                 poi_mesh_individual.POI_y = Convert.ToDecimal(p[1]);
>> >                 poi_mesh_individual.POI_z = Convert.ToDecimal(p[2]);
>> >                 POIs_3D.Add(poi_mesh_individual);
>> >             }
>> >
>> >             using (StreamWriter writer = new
>> StreamWriter(@"C:/tracker/" +
>> > "mesh.poi", false))  // False to overwrite the file; True to append
>> data to
>> > the file;
>> >             {
>> >                 for (int i = 0; i < POIs_3D.Count; i++)
>> >                 {
>> >                     writer.WriteLine(POIs_3D[i].POI_x + ";" +
>> > POIs_3D[i].POI_y + ";" + POIs_3D[i].POI_z);
>> >                 }
>> >
>> >             }
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20140116/fdb3e06c/attachment.html>


More information about the vtkusers mailing list