[Insight-users] problem with RGB .bmp images
Bill Lorensen
bill.lorensen at gmail.com
Thu Oct 2 12:00:21 EDT 2008
John,
I tried your code and image. I can reproduce your problem. The
BMPImageIO is not properly generating a lookup table when the number
of colors == 0. It should generate a lookup table based on the depth
of the image.
Please enter a bug for this, following the proecedure at:
http://www.itk.org/Wiki/ITK_Procedure_for_Contributing_Bug_Fixes
Feel free to assign the bug to me.
Bill
On Wed, Oct 1, 2008 at 6:15 AM, John <dbgtjp at hotmail.com> wrote:
> Luis Ibanez <luis.ibanez at ...> writes:
>
>>
>>
>> Hi John,
>>
>> Are you declaring your image as an image whose
>> pixel type is itkRGBPixel<> ?
>>
>> Please provide a minimal code snippet illustrating your problem.
>>
>> Thanks
>>
>> Luis
>
> Hi Luis,
>
> Of course I declared the pixel type as itk::RGBPixel.
>
> To verify that it is not an error of my code I took the example from
> Examples/DataRepresentation/Image/RGBImage.cxx.
>
> The following code results for the image http://jperl.gu6.info/000.bmp
> in the output:
>
> Pixel values from GetRed,GetGreen,GetBlue:
> Red = 137
> Green = 137
> Blue = 137
> Pixel values:
> Red = 137
> Green = 137
> Blue = 137
>
> Here the code I used:
>
> #include "itkImage.h"
> #include "itkImageFileReader.h"
>
> #include "itkRGBPixel.h"
>
> int main( int , char * argv[] )
> {
> typedef itk::RGBPixel< unsigned char > PixelType;
> typedef itk::Image< PixelType, 2 > ImageType;
> typedef itk::ImageFileReader< ImageType > ReaderType;
>
> ReaderType::Pointer reader = ReaderType::New();
> reader->SetFileName( argv[1] );
> reader->Update();
>
> ImageType::Pointer image = reader->GetOutput();
>
> ImageType::IndexType pixelIndex;
>
> pixelIndex[0] = 90;
> pixelIndex[1] = 435;
>
> PixelType onePixel = image->GetPixel( pixelIndex );
>
> PixelType::ValueType red = onePixel.GetRed();
> PixelType::ValueType green = onePixel.GetGreen();
> PixelType::ValueType blue = onePixel.GetBlue();
>
> std::cout << "Pixel values from GetRed,GetGreen,GetBlue:"
> << std::endl;
> std::cout << "Red = "
> << itk::NumericTraits<PixelType::ValueType>::PrintType(red)
> << std::endl;
> std::cout << "Green = "
> << itk::NumericTraits<PixelType::ValueType>::PrintType(green)
> << std::endl;
> std::cout << "Blue = "
> << itk::NumericTraits<PixelType::ValueType>::PrintType(blue)
> << std::endl;
>
> red = onePixel[0]; // extract Red component
> green = onePixel[1]; // extract Green component
> blue = onePixel[2]; // extract Blue component
>
> std::cout << "Pixel values:" << std::endl;
> std::cout << "Red = "
> << itk::NumericTraits<PixelType::ValueType>::PrintType(red)
> << std::endl;
> std::cout << "Green = "
> << itk::NumericTraits<PixelType::ValueType>::PrintType(green)
> << std::endl;
> std::cout << "Blue = "
> << itk::NumericTraits<PixelType::ValueType>::PrintType(blue)
> << std::endl;
>
> return 0;
> }
>
> I tried the above code on linux and windows with the same result.
> Hope this helps you.
>
> John
>
>
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users
>
More information about the Insight-users
mailing list