读书人

itk Dicom图像压缩 JPEG2000ImageIO,该

发布时间: 2014-01-09 23:07:34 作者: rapoo

itk Dicom图像压缩 JPEG2000ImageIO
有用过itk中JPEG2000ImageIO这个类吗?
怎么用?
谢谢大家
[解决办法]
看它的例子代码http://svn.na-mic.org/NAMICSandBox/trunk/JPEG2000ImageIO/Testing/itkJPEG2000ImageIOTest04.cxx

/*=========================================================================

Program: Insight Segmentation & Registration Toolkit
Module: $RCSfile: ImageReadRegionOfInterestWrite.cxx,v $
Language: C++
Date: $Date: 2005/08/27 01:46:11 $
Version: $Revision: 1.12 $

Copyright (c) Insight Software Consortium. All rights reserved.
See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.

This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notices for more information.

=========================================================================*/
#if defined(_MSC_VER)
#pragma warning ( disable : 4786 )
#endif

#ifdef __BORLANDC__
#define ITK_LEAN_AND_MEAN
#endif

#include "itkRGBPixel.h"
#include "itkJPEG2000ImageIOFactory.h"
#include "itkJPEG2000ImageIO.h"
#include "itkImageFileReader.h"
#include "itkImageFileWriter.h"
#include "itkImage.h"


int main( int argc, char ** argv )
{
// Verify the number of parameters in the command line
if( argc < 5 )
{
std::cerr << "Usage: " << std::endl;
std::cerr << argv[0] << " inputImageFile J2KOutputImageFile tileSizeX tileSizeY" << std::endl;
return EXIT_FAILURE;
}

// Register the factory
itk::JPEG2000ImageIOFactory::RegisterOneFactory();


// Image types are defined below.
typedef itk::RGBPixel<unsigned char> PixelType;
const unsigned int Dimension = 2;

typedef itk::Image< PixelType, Dimension > InputImageType;
typedef itk::Image< PixelType, Dimension > OutputImageType;

typedef itk::ImageFileReader< InputImageType > ReaderType;
typedef itk::ImageFileWriter< OutputImageType > WriterType;
typedef itk::JPEG2000ImageIO IOBaseType;

IOBaseType::Pointer base = IOBaseType::New();
base->SetTileSize( atoi( argv[3] ), atoi( argv[4] ) );

ReaderType::Pointer reader = ReaderType::New();
WriterType::Pointer writer = WriterType::New();

const std::string inputFilename = argv[1];
const std::string outputFilename = argv[2];

reader->SetFileName( inputFilename );
writer->SetFileName( outputFilename );

writer->SetInput( reader->GetOutput() );
writer->SetImageIO( base );
try
{
writer->Update();
}
catch( itk::ExceptionObject & err )
{
std::cerr << "ExceptionObject caught !" << std::endl;
std::cerr << err << std::endl;
return EXIT_FAILURE;
}
return EXIT_SUCCESS;


}


读书人网 >C++

热点推荐