[ITK-users] read palette image as scalar image + palette, instead of RGB image

asertyuio asertyuio at yahoo.fr
Tue Jan 24 10:06:26 EST 2017


Hi Dženan,

Thanks, you gave me the right direction!

I have adapted itkBPMImageIO, itkTiffImageIO, and itkPNGImageIO so that
the user have the choice to expand the color palette or not, and retrive
a vector of RGBPixel corresponding to this palette. I will try to submit
these changes to gerrit.

I'm not quite sure whether I should push a bit more so that this choice
could be set directly in itkImageReader. Do you have any advice ?

Thanks for your answer,

Yann


Le 16/01/2017 à 15:50, Dženan Zukić a écrit :
> Hi Yann,
>
> the relevant part of code for PNG format is in itkPNGImageIO.cxx,
> approximately lines 365-395 (link
> <https://github.com/InsightSoftwareConsortium/ITK/blob/578d3660e71022680d3abf313ad8b84ce2a7dd66/Modules/IO/PNG/src/itkPNGImageIO.cxx#L365-L393>).
> You will need to modify that. If you modify it in a way so it can be
> useful for others, please submit your patch to code review
> <https://itk.org/Wiki/ITK/Git/Develop>.
>
> To get access to the specialized functions of the PNG reader, you
> would instantiate it directly:
> itk::PNGImageIO::Pointer imageIO = ...
> std::vector<RGBPixel> colorTable = imageIO->GetColorTable(); //call a
> function you added to PNG reader
>
> Hope this helps,
> Dženan
>
> On Sun, Jan 15, 2017 at 11:07 AM, asertyuio via Insight-users
> <insight-users at itk.org <mailto:insight-users at itk.org>> wrote:
>
>     Hi all,
>
>     I want to read a palette image as a scalar image with its indexes
>     + a vector of RGB, corresponding to the image palette. The format
>     of the image is TIFF, but can be png or gif as well.
>
>     When I'm reading such palette image, the |itk::ImageIOBase|, as
>     implemented here
>     <https://itk.org/ITKExamples/src/IO/ImageBase/ReadUnknownImageType/Documentation.html>,
>     tels me that the image has a RGB pixel type.
>
>     |itk::ImageIOBase::PointerimageIO
>     =itk::ImageIOFactory::CreateImageIO(fileName,itk::ImageIOFactory::ReadMode);|
>
>     Is it possible to know, *through ITK*, whether the image is
>     actually a palette image, /i.e./ scalar image along with a color
>     palette, and read this image as a scalar image + palette ? I need
>     have access to the index, as stored in the file as well as the
>     color palette used in the file.
>
>     For now, my only solution is to use freeImagePlus to identify and
>     read this type of image. I haven't found any function in the class
>     |ImageIOBase| that could relate to that.
>
>     Any help would be appreciated, thanks a lot ! Yann
>
>     _____________________________________ Powered by www.kitware.com
>     <http://www.kitware.com> Visit other Kitware open-source projects
>     at http://www.kitware.com/opensource/opensource.html
>     <http://www.kitware.com/opensource/opensource.html> Kitware offers
>     ITK Training Courses, for more information visit:
>     http://www.kitware.com/products/protraining.php
>     <http://www.kitware.com/products/protraining.php> Please keep
>     messages on-topic and check the ITK FAQ at:
>     http://www.itk.org/Wiki/ITK_FAQ <http://www.itk.org/Wiki/ITK_FAQ>
>     Follow this link to subscribe/unsubscribe:
>     http://public.kitware.com/mailman/listinfo/insight-users
>     <http://public.kitware.com/mailman/listinfo/insight-users> 
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/insight-users/attachments/20170124/6b8ef6d7/attachment.html>


More information about the Insight-users mailing list