首页 文章

将uint32中的索引图像转换为double

提问于
浏览
1

我读了以下_2426669_的 im2double

类支持:Intensity和truecolor图像可以是uint8,uint16,double,logical,single **或int16 . 索引图像可以是uint8,uint16,double或logical . 二进制输入图像必须是逻辑的 . 输出图像是双倍的

我正在使用64位机器(即MATLAB使用 8 bytes 来表示double类型的变量) . 我有一个 uint32 类型的索引图像,我相信我应该能够将其转换为 double 类型,但 im2double 似乎不支持它,即我收到以下错误:

使用im2double时出错预期输入数字1,Image,是以下类型之一:double,logical,uint8,uint16,int16,single相反,它的类型是uint32 .

那么,如何将 uint32 类型的矩阵(索引图像)转换为 double

这一切都在 MATLAB 2012a

1 回答

  • 1

    根据this page(也有一些信息here):

    索引(也称为伪彩色图像)类逻辑,uint8,uint16,单或双的数组,其像素值是色彩映射的直接索引 . 色彩映射是一个m-by-3类的double类 . 对于单数组或双数组,整数值的范围为[1,p] . 对于logical,uint8或uint16数组,值的范围为[0,p-1] .

    因此MATLAB不支持类uint32的索引图像 . 我想你必须做某种color quantization .

相关问题