Main Content

转换图像图形或数据类型

在数据类型之间转换会改变图像数据的解释。如果您将生成的数组正确地解释为图像数据,则需要在转换时重新调整或偏移数据。(有关偏移的详细信息,请参阅先前的部分图像类型索引图像。)

对于某些操作,将图像转换为不同图像类型会很有帮助。例如,要过滤以索引图像形式存储彩色图像,首先要将其转换为 RGB 格式。为了有效做到这一点,请使用 ind2rgb 函数。如果对该 RGB 图像应用滤波器,也会对图像中的强度值进行过滤,因为这同样适用。如果您试图对索引图像应用滤波器,则会将滤波器应用到索引图像矩阵的索引上,而结果可能毫无意义。

您可以使用 MATLAB® 语法执行某些转换。例如,要将灰度图像转换为 RGB,可将原始矩阵的三个副本沿着第三维进行串联:

RGB = cat(3,I,I,I);

生成的 RGB 图像在红、绿、蓝平面具有完全相同的矩阵,因此图像以不同深浅的灰色显示。

也许为了与其他的软件产品兼容而改变图像的图形格式,这也非常简单。例如,要将图像从 BMP 转换为 PNG,则使用 imread 加载 BMP,将数据类型设置为 uint8uint16double,然后使用 imwrite 保存图像,且将 'PNG' 指定为目标格式。有关不同图形格式支持哪些位深的详细信息,以及将图像写入文件时如何指定格式类型,请参阅 imreadimwrite