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

duvi86 matthieu.duvinage at gmail.com
Sat Dec 13 05:32:55 EST 2008


Hello,

In fact, your last proposition is what I need to do. The code I'm using is
just below. However, it doesn't work. The result is a black PNG file. Do you
have an idea ?
The other goal is to be able to use PNG files from another application and
to reconstruct the data to render it afterwards. 

Thanks


Matthieu


vtkImageThreshold *mon_tre = vtkImageThreshold::New();
	mon_tre->SetInput(Vol->GetOutput());
	mon_tre->ThresholdByUpper(1300);
	mon_tre->SetInValue(0);
	mon_tre->SetOutValue(255);
	//mon_tre->ReplaceOutOff();
	//mon_tre->ReplaceInOn();
	mon_tre->Update();

vtkPNGWriter *writer=vtkPNGWriter::New();
  
    writer->SetInput(mon_tre->GetOutput());
    char *wfname=(char *)malloc(sizeof(char)*25);
    sprintf(wfname,"koursky2.png");

    writer->SetFileName(wfname);
    writer->Write();



Bill Lorensen-2 wrote:
> 
> The vtk filters that you ran do not produce a volume. They produce
> triangles which represent surfaces.
> 
> If you want to produce a thresholded volume, then save the output of
> vtkImageThreshold. Set the OutValue to 255 to keep the data within the
> range of an unsigned char. The you can use vtk (or itk) to svae the
> thresholded volume in PNG files.
> 
> However, I still think we do not understand your goals.
> 
> Bill
> 
> 
> On Thu, Dec 11, 2008 at 1:09 PM, Matthieu Duvinage
> <matthieu.duvinage at gmail.com> wrote:
>> Hi,
>>
>> In fact, in the framework of my project, I have to save the volume
>> obtained
>> from the different filters (smoothing,...) into PNG files. The purpose is
>> to
>> be able to reload the entire volume thanks to the PNG files.
>>
>> Thank you very much of your answers
>>
>> Matthieu
>> Bill Lorensen a écrit :
>>>
>>> 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
>>>>
>>>>
>>>
>>>
>>
>>
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users
> 
> 

-- 
View this message in context: http://www.nabble.com/ITK-VTK-image-and-problems-with-includes-in-visual-c%2B%2B-express-2008-tp20956274p20988939.html
Sent from the ITK - Users mailing list archive at Nabble.com.



More information about the Insight-users mailing list