【数字图像处理】M1. 显示图像 Image Display (with MATLAB)
一、读取图像 imread
读取图像的基本命令是imread,对于不同的图像类型会有不同的返回值。
imread的调用格式有很多,这里只说明最常用的三种图像的读取方式。
一个8位的灰度图像的每一个像素只有一个字节来记录,所在调用imread后返回的结果是一个uint8型的二维数组,第一维代表的是行,第二维代表的是列。
基本的格式是:
为了显示灰度图像,我们需要去掉坐标轴并给它一个颜色索引,基本的格式是:
而对于索引图像来说,它本身就自带了一个colormap,所以colormap内直接给索引表就可以正确地显示索引图像。
为了避免自己转换类型出错,可以使用im2double或im2uint8函数,这样不管数据范围是0到255还是0到1都可以正确地进行数据转换。
五、图像的缩放 imresize
利用imresize(im, scale, method)或imresize(im, [row col], method)可以轻松地改变图像的大小,其中im是图像矩阵,scale是变换的比例,[row col]是最终图像的大小。由于计算机中的数据都是离散的,在放大过程中需要插值的操作,method控制的就是插值的方法。如果不填写method,从我的版本来看默认为'bicubic',双三次插值,还可以选‘bilinear’,双线性插值,‘nearest’,最近邻插值。理论上效果自然是次数越高越好,同时耗时也就越多。
可以看出,默认模式不是最近邻插值。最近邻插值有明显的马赛克现象,没增加信息量反而占用了更大的空间,所以通常不会采用。