当我在阅读图像时,itk::ImageIOBase
(如here)所示,表明图像具有RGB像素类型。图像的格式是TIFF,但也可以是png或gif。如何用ITK将调色板图像作为标量图像读取?
itk::ImageIOBase::Pointer imageIO =
itk::ImageIOFactory::CreateImageIO(
fileName, itk::ImageIOFactory::ReadMode);
如何知道,通过ITK,图像是否实际上是一个调色板图像,即标图像与调色板一起,并读取图像作为标图像+调色板?我需要检索存储在文件中的索引以及文件中使用的调色板。
现在,我唯一的解决方案是使用freeImagePlus来识别和读取这种类型的图像。我还没有发现类ImageIOBase
可能与此有关的任何功能。
任何帮助将不胜感激,我还没有在互联网上找到这方面的很多信息!
感谢您的帮助!获得每个像素使用的确切索引以及关联的颜色映射对我来说非常重要。不幸的是,在测试您的代码示例之后,根据其调色板中提供的RGB值将图像转换为灰色。因此,我无法找到索引... – beesleep
ITK可能不是最好的库。你是否尝试过直接使用libpng或libtiff? –
谢谢。我真的注意到了!但是我正在开发一个注册程序,因此无论如何我都需要将图像转换为ITK。目前,我正在使用freeImage来读取这些图像并将内存复制到itk。整合在ITK中的东西会更方便。 – beesleep