[vtkusers] Input Issue

rahul indoria rahulindoria5 at gmail.com
Fri Jul 19 09:58:55 EDT 2013


Hi All,
        I have one more questions, I have a set of point data and i want to
make a 2D image using this point data, could you please suggest me some
class or example regarding this?


Looking forward your reply soon.


On Fri, Jul 19, 2013 at 3:26 PM, rahul indoria <rahulindoria5 at gmail.com>wrote:

> Hi Bill,
>         Thanks for your help, its done.
>
>
> On Fri, Jul 19, 2013 at 2:31 PM, Bill Lorensen <bill.lorensen at gmail.com>wrote:
>
>> When I add
>> polydata->Print(std::cout);
>>
>> I see that the point data has two arrays:
>> MetaImage and vtkValidPointMask
>>
>> For this example, you want MetaImage.
>> Also, the type of that array is UnsignedCharArray.
>>
>>
>>
>> On Thu, Jul 18, 2013 at 4:58 PM, rahul indoria <rahulindoria5 at gmail.com>wrote:
>>
>>> Hi all vtk users,
>>>  *Hi,*
>>> *    I am trying to get the point data in the given example(*
>>> http://www.vtk.org/Wiki/VTK/Examples/Cxx/Visualization/CurvedReformation
>>> *) and i am modify my example something like that in main function to
>>> access the point data. can you check it???? *
>>>
>>> *Green color part is directly copied from the example:*
>>>
>>>  *// Verify arguments*
>>> *  if (argc < 4)*
>>> *    {*
>>> *      std::cout << "Usage: " << argv[0]*
>>> *                << " InputVolume PolyDataInput"*
>>> *                << " Resolution"*
>>> *                << std::endl;*
>>> *      return EXIT_FAILURE;*
>>> *    }*
>>> *
>>> *
>>> *  // Parse arguments*
>>> *  std::string volumeFileName = argv[1];*
>>> *  std::string polyDataFileName = argv[2];*
>>> *  std::stringstream ssResolution;*
>>> *  ssResolution << argv[3];*
>>> *  unsigned int resolution;*
>>> *  ssResolution >> resolution;*
>>> *
>>> *
>>> *  // Output arguments*
>>> *  std::cout << "InputVolume: " << volumeFileName << std::endl*
>>> *            << "PolyDataInput: " << polyDataFileName << std::endl*
>>> *            << "Resolution: " << resolution << std::endl;*
>>> *
>>> *
>>> *  // Read the volume data*
>>> *  vtkSmartPointer< vtkImageReader2Factory > imageFactory =*
>>> *    vtkSmartPointer< vtkImageReader2Factory >::New();*
>>> *  vtkImageReader2 *imageReader =*
>>> *  imageFactory->CreateImageReader2(volumeFileName.c_str());*
>>> *  imageReader->SetFileName(volumeFileName.c_str());*
>>> *  imageReader->Update();*
>>> *
>>> *
>>> *  // Read the Polyline*
>>> *  vtkSmartPointer<vtkPolyDataReader> polyLineReader =*
>>> *    vtkSmartPointer<vtkPolyDataReader>::New();*
>>> *  polyLineReader->SetFileName(polyDataFileName.c_str());*
>>> *  polyLineReader->Update();*
>>> *
>>> *
>>> *  vtkSmartPointer<vtkSplineFilter> spline =*
>>> *    vtkSmartPointer<vtkSplineFilter>::New();*
>>> *  spline->SetInputConnection(polyLineReader->GetOutputPort());*
>>> *  spline->SetSubdivideToSpecified();*
>>> *  spline->SetNumberOfSubdivisions(resolution);*
>>> *
>>> *
>>> *  // Sweep the line to form a surface*
>>> *  double direction[3];*
>>> *  direction[0] = 0.0;*
>>> *  direction[1] = 0.0;*
>>> *  direction[2] = 1.0;*
>>> *  double distance = 164;*
>>> *  spline->Update();*
>>> *  vtkSmartPointer<vtkPolyData> surface =*
>>> *    SweepLine(spline->GetOutput(),*
>>> *              direction,*
>>> *              distance,*
>>> *              atoi(argv[3]));*
>>> *
>>> *
>>> *  // Probe the volume with the extruded surface*
>>> *  vtkSmartPointer<vtkProbeFilter> sampleVolume =*
>>> *    vtkSmartPointer<vtkProbeFilter>::New();*
>>> *  sampleVolume->SetInputConnection(1, imageReader->GetOutputPort());*
>>> *#if VTK_MAJOR_VERSION <= 5*
>>> *  sampleVolume->SetInput(0, surface);*
>>> * #else*
>>> *  sampleVolume->SetInputData(0, surface);*
>>> *#endif*
>>> *  // Compute a simple window/level based on scalar range*
>>> *  vtkSmartPointer<vtkWindowLevelLookupTable> wlLut =*
>>> *    vtkSmartPointer<vtkWindowLevelLookupTable>::New();*
>>> *  double range = imageReader->GetOutput()->GetScalarRange()[1] -*
>>> *                 imageReader->GetOutput()->GetScalarRange()[0];*
>>> *  double level = (imageReader->GetOutput()->GetScalarRange()[1] +*
>>> *                  imageReader->GetOutput()->GetScalarRange()[0]) / 2.0;
>>> *
>>> *  wlLut->SetWindow(range);*
>>> *  wlLut->SetLevel(level);*
>>> *  sampleVolume->Update();*
>>>
>>>
>>> *Red color part is modified part*
>>> *
>>> *
>>> *  // Extract the polydata*
>>> *   vtkSmartPointer<vtkPolyData> polydata = *
>>> * vtkSmartPointer<vtkPolyData> :: New();*
>>> *   polydata = vtkPolyData::SafeDownCast(**sampleVolume->GetOutput());  //
>>> here the sampleVolume->GetOutput()  are the points generated, as i
>>> understand.*
>>>  *
>>> *
>>> *  // Get the number of points in the polydata*
>>> *  vtkIdType idNumPointsInFile = polydata->GetNumberOfPoints();*
>>> *
>>> *
>>> *  vtkSmartPointer<vtkDoubleArray> array =
>>> vtkSmartPointer<vtkDoubleArray> :: New();*
>>> *   array =
>>> vtkDoubleArray::SafeDownCast(polydata->GetPointData()->GetArray("Distances"));
>>> *
>>> * *
>>> *  if(array)*
>>> *    {*
>>> *    for(int i = 0; i < idNumPointsInFile; i++)      *
>>> *      {*
>>> *      std::cout << "Got array." << std::endl;*
>>> *      double dist;*
>>> *      dist = array->GetValue(i);*
>>> *      /**
>>> *      //if the array held arrays instead of scalars, you would use
>>> this:   *
>>> *      double location[3];*
>>> *      array->GetTupleValue(i, location);*
>>> *      std::cout << "Location: " << Location[0] << ","  << Location[1]
>>> << "," << Location[2] << std::endl;*
>>> *      */*
>>> *      std::cout << "Distance: " << dist << std::endl;*
>>> *      }*
>>> *    }//end if(array)*
>>> *  else*
>>> *    {*
>>> *    std::cout << "no array." << std::endl;*
>>> *    }*
>>> *
>>> *
>>> *  system("PAUSE");*
>>> *
>>> *
>>> *  return EXIT_SUCCESS;*
>>> *
>>> *
>>> *
>>> *
>>> *could you please suggest me how to get the point data in of the given
>>> example?*
>>>
>>
>>
>>
>> --
>> Unpaid intern in BillsBasement at noware dot com
>>
>
>
>
> --
> *Best  Regards
> Rahul Indoria
> Mobile No: +49-157-35652212*
>



-- 
*Best  Regards
Rahul Indoria
Mobile No: +49-157-35652212*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20130719/d5ddc9f3/attachment.htm>


More information about the vtkusers mailing list