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

Bill Lorensen bill.lorensen at gmail.com
Thu Dec 11 12:53:39 EST 2008


Matthieu,

I agree with Mathieu.

What is your end goal?

Bill

On Thu, Dec 11, 2008 at 10:43 AM, Mathieu Malaterre
<mathieu.malaterre at gmail.com> wrote:
> 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