[vtkusers] converting from vtk to itk and back again
Jothy
jothybasu at gmail.com
Tue Sep 20 05:19:47 EDT 2011
Hi Mark,
I wonder whether you can use vtkImageToImageFilter to hold the image data
from the exporter.
Any way I use the itkVTKImageToImageFilter to do the conversion and it works
well for me.
Here is the snippet
typedef itk::Image<unsigned int,3> ImageType;
typedef itk::VTKImageToImageFilter<ImageType>VTKImageToImageType;
VTKImageToImageType::Pointer converter=VTKImageToImageType::New();
converter->SetInput(stencil2->GetOutput());
converter->Update();
On Tue, Sep 20, 2011 at 5:59 AM, Mark Roden <mmroden at gmail.com> wrote:
> Hi all,
>
> I've looked on google and the various newsgroups and have not found
> the answer to what I thought was a pretty straightforward question.
>
> I have a vtkImageData object that has been obtained... somehow. I do
> not have the pipeline at this point, just the output. The user could
> have done any number of things to have arrived at this point, and so I
> store a vtkImageData that has been DeepCopied off of the end of
> whatever pipeline was employed.
>
> I then want to save that image in the Analyze format. A coworker made
> his own reader/writer using the information that Mayo put out, but the
> resulting files don't appear to be oriented correctly. I want to
> verify if his version is producing a bug, and I wanted to use the itk
> version of the writing plugin to do the work.
>
> Here's what I have:
>
> #ifdef ITK_IMG_WRITER
> #include "vtkImageExport.h"
> #include <itkVTKImageImport.h>
> #include "itkImageFileWriter.h"
> #include "itkAnalyzeImageIO.h"
> #include "itkImage.h"
> #include "itkOrientedImage.h"
> #endif
>
>
> void saveAnalyzeImage(vtkImageData * const image, const QString &file) {
>
> #ifdef ITK_IMG_WRITER
> //this code is done using ITK, and so requires that ITK be included
> typedef itk::OrientedImage< signed short, 3 > CTImage;
> typedef itk::ImageFileWriter< CTImage> CTWriter;
> typedef itk::VTKImageImport<CTImage> VTKImageImportType;
>
> CTWriter::Pointer theWriter = CTWriter::New();
>
> theWriter->SetFileName(file.toStdString().c_str());
>
> vtkImageExport* theExporter = vtkImageExport::New();
> theExporter->SetInput(image);
>
> VTKImageImportType::Pointer vtkImageToImageFilter =
> VTKImageImportType::New();
> theExporter->SetOutput(vtkImageToImageFilter);
> vtkImageToImageFilter->Update();
>
> theWriter->SetInput(vtkImageToImageFilter->GetOutput());
>
> itk::AnalyzeImageIO::Pointer analyzeIO = itk::AnalyzeImageIO::New();
> theWriter->SetImageIO(analyzeIO);
>
> try {
> theWriter->Update();
> } catch(itk::ExceptionObject ex){
> return; //do something else here for error handling
> }
> theWriter->Delete();
> vtkImageToImageFilter->Delete();
> analyzeIO->Delete();
> return;
>
> #else
> //do the other code instead
> #endif
> }
>
> This code is not compiling, because
> theExporter->SetOutput(vtkImageToImageFilter) doesn't work. I've also
> tried just using the VTKImageImportType object directly, but that does
> not have a SetInput method. As could be guessed from the code, I also
> tried vtkImageToImageFilter, but that appears to be a deprecated
> leftover from 2004 or so. Unless there's some include file I'm not
> finding?
>
> All I really want is for vtk to read and write analyze files. Barring
> that, I want to be able to seamlessly convert from a vtkImageData
> object to an itk::Image object so I can use itk's analyze export and
> importing functions. How can I fix that code to make it work?
>
> Thanks,
> Mark
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the VTK FAQ at:
> http://www.vtk.org/Wiki/VTK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
>
--
Jothybasu K Selvaraj
PhD Student
University of Liverpool
Liverpool,UK
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20110920/1491c9aa/attachment.htm>
More information about the vtkusers
mailing list