[Insight-users] extract slice from RGB image
john smith
mkitkinsightuser at gmail.com
Thu Jun 30 15:52:10 EDT 2011
Could somebody explain in some words what must be done in order to extract a
2D slice from a RGB 3D image? I am trying to find an example (but I didn't
find anything) and I am reading the docs but I am totally lost. This task
may be very easy but I really need some help.
Any response would be very useful.
Thanks in advace
2011/6/30 john smith <mkitkinsightuser at gmail.com>
> You may have right as it should work properly.It is the first time I am
> working with RGB images. But what changes should be done?
>
> Thanks for yoyr response
>
>
> 2011/6/30 robert tamburo <robert.tamburo at gmail.com>
>
>> Do you really expect the filter to extract a 2D image of unsigned char
>> pixels from a 3D image of RGB pixels?
>>
>> On Thu, Jun 30, 2011 at 3:07 PM, john smith <mkitkinsightuser at gmail.com>wrote:
>>
>>> Hello to all,
>>>
>>> I am trying to read an RGB image, then use the ExtractImageFilter and
>>> finally, write the RGB slice. I have written the following code, but I get
>>> this error
>>> *error C2440: 'static_cast' : cannot convert from
>>> 'itk::RGBPixel<TComponent>' to 'unsigned char' *. Do you know what I am
>>> doing wrong?
>>>
>>> Thanks in advance
>>>
>>> ///////// code //////////////
>>> typedef itk::RGBPixel<unsigned char> RGBPixelType;
>>> typedef itk::Image<RGBPixelType,3> RGBImageType;
>>>
>>> typedef itk::ImageFileReader< RGBImageType > ReaderType_RGB;
>>>
>>> ReaderType_RGB::Pointer reader_RGB = ReaderType_RGB::New();
>>>
>>> reader_RGB->SetFileName( "output.hdr" );
>>> reader_RGB->Update();
>>>
>>>
>>> typedef unsigned char OutputPixelType_extract_RGB;
>>> typedef itk::Image< OutputPixelType_extract_RGB, 2 >
>>> OutputImageType_extract_RGB;
>>> typedef itk::ExtractImageFilter< RGBImageType,
>>> OutputImageType_extract_RGB > FilterType_extract_RGB;
>>> FilterType_extract_RGB::Pointer filter_extract_RGB =
>>> FilterType_extract_RGB::New();
>>>
>>> RGBImageType::RegionType inputRegion =
>>> reader_RGB->GetOutput()->GetLargestPossibleRegion();
>>>
>>>
>>> RGBImageType::SizeType size = inputRegion.GetSize();
>>>
>>> // get the size of the hole 3D image
>>> size_x = size[0];
>>> size_y = size[1];
>>> size_z = size[2];
>>>
>>> // get slices of z coordiante
>>> size[2] = 0;
>>>
>>> RGBImageType::IndexType start = inputRegion.GetIndex();
>>> ui->verticalScrollBar_z->setRange(0,size_z-1);
>>> unsigned int sliceNumber = ui->verticalScrollBar_z->value();
>>> start[2] = 10;
>>>
>>>
>>> RGBImageType::RegionType desiredRegion;
>>> desiredRegion.SetSize( size );
>>> desiredRegion.SetIndex( start );
>>>
>>> filter_extract_RGB->SetExtractionRegion( desiredRegion );
>>>
>>> typedef itk::ImageFileWriter< OutputImageType_extract_RGB >
>>> WriterType_RGB;
>>> WriterType_RGB::Pointer writer_RGB = WriterType_RGB::New();
>>> writer_RGB->SetFileName( "z.png" );
>>>
>>> filter_extract_RGB->SetInput( reader_RGB->GetOutput() );
>>> writer_RGB->SetInput( filter_extract_RGB->GetOutput() );
>>>
>>> try
>>> {
>>> writer_RGB->Update();
>>> }
>>> catch( itk::ExceptionObject & err )
>>> {
>>> std::cerr << "ExceptionObject caught !" << std::endl;
>>> std::cerr << err << std::endl;
>>> }
>>>
>>> _____________________________________
>>> Powered by www.kitware.com
>>>
>>> Visit other Kitware open-source projects at
>>> http://www.kitware.com/opensource/opensource.html
>>>
>>> Kitware offers ITK Training Courses, for more information visit:
>>> http://www.kitware.com/products/protraining.html
>>>
>>> Please keep messages on-topic and check the ITK FAQ at:
>>> http://www.itk.org/Wiki/ITK_FAQ
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.itk.org/mailman/listinfo/insight-users
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20110630/d902f793/attachment.htm>
More information about the Insight-users
mailing list