[Insight-users] ITK-VTK image and problems with includes in visual c++ express 2008

Mathieu Malaterre mathieu.malaterre at gmail.com
Thu Dec 11 10:43:57 EST 2008


Yes. You need to look into something like : vtkPolyDataToImageStencil
to turn your unstructured data into structured data.

But I would suggest you think twice about it and then simply give up.
I do not believe this is what you are looking for.


On Thu, Dec 11, 2008 at 4:19 PM, Matthieu Duvinage
<matthieu.duvinage at gmail.com> wrote:
> And so, is it impossible to convert the PolyData into the right format and
> then save it into PNG files ?
> Even with these functions :
>
> Fonctions:
>
>
>    template<class TOutputImage>
>    class itk::ImageSeriesReader< TOutputImage >
>
>
> Data source that reads image data from a series of disk files.
>
> This class builds an n-dimension image from multiple n-1 dimension image
> files. The files stored in a vector of strings are read using the
> ImageFileReader
> <http://www.itk.org/Doxygen/html/classitk_1_1ImageFileReader.html>. File
> format may vary between the files, but the image data must have the same
> Size <http://www.itk.org/Doxygen/html/classitk_1_1Size.html> for all
> dimensions.
>
>
>    template<class TInputImage, class TOutputImage>
>    class itk::ImageSeriesWriter< TInputImage, TOutputImage >
>
> Writes image data to a series of data files.
>
> ImageSeriesWriter
> <http://www.itk.org/Doxygen/html/classitk_1_1ImageSeriesWriter.html> writes
> its input data to a series of output files. The writer is templated over an
> input image type and an output image type. Usually, the output image type
> will have fewer dimensions than the input image type. Each file has a name
> created using the SeriesFormat. This string is used as a sprintf argument to
> build a filename. The string should contain zero or one "%d" or equivalent.
> The "%d" is an incremental file number that starts at StartIndex and is
> incremented by IncrementIndex. Since this writer uses an internal instance
> of an ImageFileWriter
> <http://www.itk.org/Doxygen/html/classitk_1_1ImageFileWriter.html>, the type
> of file is determined by either the file extension or an ImageIO class if
> specified.
>
> Thanks
>
> Matthieu
>
>
> Bill Lorensen a écrit :
>>
>> PolyData cannot be written into a series of PNG files. PNG files and
>> other image types can only contain image data (pixels).
>>
>> Neither VTK nor ITK support this.
>>
>> On Thu, Dec 11, 2008 at 9:19 AM, Matthieu Duvinage
>> <matthieu.duvinage at gmail.com> wrote:
>>
>>>
>>> Hello everybody,
>>>
>>> I'm working on a project in the medical field and I'm using VTK. However,
>>> the last module I have to create seems to be provided only by ITK. In
>>> fact,
>>> I have to transform a volume in a series of PNG files and the
>>> ImageSeriesWriter class seems to be devoted to that.
>>>
>>> 1) I have compiled the library with CMake and then done the build all and
>>> install process. I put the repertories in includes and librairies in
>>> visual
>>> studio express 2008 but I have a problem. The program says that the file
>>> I
>>> have to import is not in the directory whereas it is but in a deeper
>>> directory. I have again this problem when I put the deeper directory in
>>> the
>>> include directories with another file. Is it possible to enable an option
>>> in
>>> visual to force it to look in deeper directories ?
>>> 2) I would like to use the  normals image (see below) from a VTK class to
>>> use ImageSeriesWriter. Could you give me an example of how to use that ?
>>> Because I'm a bit lost with all the classes and the principle of
>>> pipeline. I
>>> have seen that there exist VTKimport or export classes to do something in
>>> this case but how do I have to do ?
>>>
>>> I hope I hear from you soon
>>>
>>>
>>> Matthieu
>>>
>>>
>>> vtkImageThreshold *mon_tre = vtkImageThreshold::New();
>>>  mon_tre->SetInput(Vol->GetOutput());
>>>  mon_tre->ThresholdByUpper(1300);
>>>  mon_tre->SetInValue(0);
>>>  mon_tre->SetOutValue(3000);
>>>  //mon_tre->ReplaceOutOff();
>>>  //mon_tre->ReplaceInOn();
>>>  mon_tre->Update();
>>>  vtkContourFilter *contours = vtkContourFilter::New();
>>>  contours->SetInput(mon_tre->GetOutput());
>>>  contours->SetValue(1,3000);
>>>
>>>  //marsh cube
>>>   // Iso-surface using marching cubes
>>>  vtkMarchingCubes* iso = vtkMarchingCubes::New();
>>>  iso->SetInput(mon_tre->GetOutput());
>>>  iso->SetValue(1,3000); // Surface #0, iso-value=1
>>>   //Decimation
>>>  vtkDecimatePro* decimate=vtkDecimatePro::New();
>>>  decimate->SetInput(iso->GetOutput());
>>>  decimate->SetTargetReduction(0.9);
>>>  decimate->PreserveTopologyOn();
>>>  decimate->SetMaximumError(0.0002);
>>>
>>>
>>>  // Smoothing
>>>  vtkSmoothPolyDataFilter* smoother =vtkSmoothPolyDataFilter::New();
>>>  smoother->SetInput(iso->GetOutput());
>>>  smoother->SetNumberOfIterations(200);
>>>  smoother->SetRelaxationFactor(0.05);
>>>  //smoother->FeatureEdgeSmoothingOn();
>>>  //smoother->BoundarySmoothingOn();
>>>
>>>  vtkPolyDataNormals *normals=vtkPolyDataNormals::New();
>>>  normals->SetInput(smoother->GetOutput());
>>> _______________________________________________
>>> Insight-users mailing list
>>> Insight-users at itk.org
>>> http://www.itk.org/mailman/listinfo/insight-users
>>>
>>>
>>
>>
>
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users
>



-- 
Mathieu


More information about the Insight-users mailing list