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

时间:2012-07-29 22:58:42

标签: image matlab indexed-image

我阅读了im2double

的以下in the documentation
  

班级支持:

     

强度和真彩色图像可以是uint8,uint16,double,logical,   单**或int16。索引图像可以是 uint8 uint16 double 或   的逻辑即可。二进制输入图像必须是逻辑的。输出图像是   双

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

  

使用im2double时出错预期的输入数字1,Image,是其中之一   这些类型:

     

double,logical,uint8,uint16,int16,single

     

相反,它的类型是uint32。

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

这完全在 MATLAB 2012a

1 个答案:

答案 0 :(得分:1)

根据this page(某些信息here):

  

索引(也称为伪彩色图像)

     

类逻辑,uint8,uint16,single或double的像素数组   值是色彩映射的直接索引。色彩图是m-by-3   类double的数组。

     

对于单数组或双数组,整数值的范围为[1,p]。对于   logical,uint8或uint16数组的值范围为[0,p-1]。

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