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

Matthieu Duvinage matthieu.duvinage at gmail.com
Thu Dec 11 10:19:53 EST 2008


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
>>
>>     
>
>   



More information about the Insight-users mailing list