[Insight-users] Reading/writing images and CMake
Brecht Heyde
Brecht.Heyde at med.kuleuven.be
Fri Nov 26 13:57:59 EST 2010
Hi all,
I am fairly new to ITK and have a couple of questions:
1. When creating a new ITK program, do I always have to go through CMake to
create (in my case) a .sln Visual Studio Solution? Or do I otherwise have to
specify all the additional directories + libraries for the linker manually?
2. I tried adapting the ImageReadWrite.cxx slightly in order to read the
BrainMidSagittalSlice.png found in the ITK/Examples/Data directory.
My source code is:
#include "itkImageFileReader.h"
#include "itkImageFileWriter.h"
#include "itkImage.h"
int main()
{
typedef short PixelType;
const unsigned int Dimension = 2;
typedef itk::Image< PixelType, Dimension > ImageType;
typedef itk::ImageFileReader< ImageType > ReaderType;
typedef itk::ImageFileWriter< ImageType > WriterType;
ReaderType::Pointer reader = ReaderType::New();
WriterType::Pointer writer = WriterType::New();
const char * inputFilename = "BrainMidSagittalSlice.png";
const char * outputFilename = "BrainMidSagittalSlice_output.png";
reader->SetFileName( inputFilename );
writer->SetFileName( outputFilename );
writer->SetInput( reader->GetOutput() );
try
{
writer->Update();
}
catch( itk::ExceptionObject & err )
{
std::cerr << "ExceptionObject caught !" << std::endl;
std::cerr << err << std::endl;
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}
With CmakeList.txt:
CMAKE_MINIMUM_REQUIRED(VERSION 2.4)
IF(COMMAND CMAKE_POLICY)
CMAKE_POLICY(SET CMP0003 NEW)
ENDIF(COMMAND CMAKE_POLICY)
# This project is designed to be built outside the Insight source tree.
PROJECT(ImageReadWrite)
# Find ITK.
FIND_PACKAGE(ITK REQUIRED)
INCLUDE(${ITK_USE_FILE})
ADD_EXECUTABLE(ImageReadWrite ImageReadWrite.cxx)
TARGET_LINK_LIBRARIES(ImageReadWrite ITKIO)
When running the resulting executable from a cmd prompt as 'ImageReadWrite',
I get the following error:
C:\ITK-dev\ImageReadWrite\debug>ImageReadWrite
ExceptionObject caught !
itk::ImageFileReaderException (0133F0CC)
Location: "void __thiscall itk::ImageFileReader<class
itk::Image<short,2>,class
itk::DefaultConvertPixelTraits<short> >::GenerateOutputInformation(void)"
File:
c:\itk-src\insighttoolkit-3.20.0\insighttoolkit-3.20.0\code\io\itkImageFileR
eader.txx
Line: 146
Description: Could not create IO object for file BrainMidSagittalSlice.png
Tried to create one of the following:
BioRadImageIO
GDCMImageIO
MetaImageIO
PNGImageIO
VTKImageIO
GiplImageIO
LSMImageIO
AnalyzeImageIO
NiftiImageIO
StimulateImageIO
JPEGImageIO
TIFFImageIO
NrrdImageIO
BMPImageIO
DICOMImageIO2
You probably failed to set a file suffix, or set the suffix to an
unsupported type.
As I understood from previous mails on this list, the IO object decides
automatically to what format it should write. What am I doing wrong?
3. I'd like to read a 3D+time dataset in ITK. The original dataset is in
dicom format but I have previously extracted the relevant data and converted
to a .mat format for further processing in Matlab (in practice this is just
one big 4D matrix). Furthermore, we have developed a visualisation tool to
manually segment such a dataset and export a mesh (cloud of points with
connectivity matrix) containing this manual contouring.
I was wondering what format I could use to import such a series of 3D
matrices and import this cloud of points. I doubt that a dicomreader would
work as the image data is stored in a private datastructure in the
dicomformat.
4. I'd like to register this set of 3D images and know how my cloud of
points are deformed by the registration algorithm. Is this possible in ITK?
Likewise, would it be possible to calculate how an overlying grid deforms
due to this registration? Finally, I would like to export the positions of
this deformed set of points (and preferably the deformed floating images).
Can I do this in a Matlab compatible format or do I have to write a mex
wrapper for this?
Many thanks,
Best regards,
Brecht
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20101126/9895412c/attachment.htm>
More information about the Insight-users
mailing list