[ITK-users] ITK Importing Image Data from a Buffer

assil assil-king at hotmail.fr
Mon Oct 27 08:21:31 EDT 2014


I have coded a method to create an Itk image from a buffer (in my case it's a
Cimg image type). This is the algorithme :

void Cimg_To_ITK (CImg<uchar> img)
{

const unsigned int Dimension = 2;
typedef itk::RGBPixel< unsigned char > RGBPixelType;
typedef itk::Image< RGBPixelType, Dimension > RGBImageType;
typedef itk::ImportImageFilter< RGBPixelType, Dimension >
ImportFilterType;
ImportFilterType::Pointer importFilter = ImportFilterType::New();
typedef itk::ImageFileWriter< RGBImageType > WriterType;
WriterType::Pointer writer = WriterType::New();


RGBImageType::SizeType imsize;
imsize[0] = img.width();
imsize[1] = img.height();

ImportFilterType::IndexType start;
start.Fill( 0 );
ImportFilterType::RegionType region;
region.SetIndex( start );
region.SetSize( imsize );
importFilter->SetRegion( region );

const itk::SpacePrecisionType origin[ Dimension ] = { 0.0, 0.0 };
importFilter->SetOrigin( origin );

const itk::SpacePrecisionType spacing[ Dimension ] = { 1.0, 1.0 };
importFilter->SetSpacing( spacing );

const unsigned int numberOfPixels = imsize[0] * imsize[1];
const bool importImageFilterWillOwnTheBuffer = true;

RGBPixelType * localBuffer = new RGBPixelType[ numberOfPixels ];
memcpy(localBuffer->GetDataPointer(), img.data(), numberOfPixels);
importFilter->SetImportPointer( localBuffer,
numberOfPixels,importImageFilterWillOwnTheBuffer );
writer->SetInput( importFilter->GetOutput() );
writer->SetFileName( "output.png" );
writer->Update();
}

I dont have what i want as a output :

input :
<http://itk-insight-users.2283740.n2.nabble.com/file/n7586418/1.bmp> 

output :

<http://itk-insight-users.2283740.n2.nabble.com/file/n7586418/output.png> 




--
View this message in context: http://itk-insight-users.2283740.n2.nabble.com/ITK-Importing-Image-Data-from-a-Buffer-tp7586419.html
Sent from the ITK Insight Users mailing list archive at Nabble.com.


More information about the Insight-users mailing list