MATLAB中图像的读取与显示及灰度

通常情况下,MATLAB通过imread函数读入标准格式图像文件,得到描述图像的数值数组,然后通过image、imagesc命令以这些数值数组为参数就可以在MATLAB  Figure窗口坐标轴下显示图像,通过axis、colormap命令可以设置坐标轴比例和色彩表。

一、MATLAB中利用函数imread来实现图像文件的读取操作,格式如下:

  1. A=imread(‘文件名’,文件格式)。
  2. [X,map]=imread(‘文件名’): X代表索引图像的数据矩阵,map为颜色映射表。

通常情况下,通过imread读取的大多数图像都是8位的。把这些图像加载在内存中时,MATLAB就将其存储在unit8类型的矩阵中。此外,MATLAB还支持16位的PNG和TIFF图像,用户读取这些图像时,MATLAB就将其存储在unit16类型的矩阵中。

对索引图像来说,即使图像矩阵本身为unit8或unit16类型,imread函数读取颜色映射表后将其存在一个双精度浮点类型的矩阵中。

二、图像读入及显示应用示例。

利用读入函数imread显示图像文件彩图半佛.jpg。在MATLAB命令行中输入的命令如下所示:

 

其中第一行命令是将图像格式文件读入为MATLAB图像对象数组数据,第二行命令是显示图像的命令;执行命令后,显示出的图像在Figure1中,如下图所示:

接着在命令行输入whos,输出的结果为:

通过whos的命令可知,文件彩图半佛.jpg经过imread函数读入后,产生了一个数值数组X,它是一个872*1162*3的三维数组,这是因为彩图半佛.jpg是真彩色模式的图像文件,其宽为872像素,长为1162像素。

三、灰度图像显示

MATLAB把灰度图像存储为一个数据矩阵,该数据矩阵中的元素分别代表了图像中的像素,其值为颜色的灰度值。矩阵中的元素可以是双精度的浮点数类型、8位或16位无符号的整数类型。大多数情况下,灰度图像很少和颜色映射表一起保存。但是在显示灰度图像时,MATLAB仍然在后台使用系统预定义的默认的灰度颜色映射表。在MATLAB中,要显示一幅灰度图像,需要调用函数imagesc(即image scale,图像缩放函数)。

imagesc函数中的第二个参数确定灰度范围。灰度范围中的第一个值(通常是0)对应于颜色映射表的第一个值(颜色),灰度范围中的第二个值(通常为1)对应于颜色映射表中的最后一个值(颜色)。在灰度范围中间的直线型对应于颜色映射表中的剩余的值(颜色)。

执行命令行的命令后,得到以下灰度图像:

          

猜你喜欢

转载自blog.csdn.net/da_ye_zi/article/details/82863392