imshow显示用矩阵保存的多张图片_MATLAB实现图像的读取、写入、显示

原标题:MATLAB实现图像的读取、写入、显示

数字图像表示

1.相关名词解析

强度(灰度):将一幅图像定义为一个二维函数f(x,y),任何一对空间坐标(x,y)处的幅值f称为图像在该点处的强度或灰度。

数字图像:当x,y和灰度值f是有限的离散数值时,称该图像为数字图像。

数字图像处理:借助数字计算机来处理数字图像。

图画元素/图像元素/像素:有限数量的像素构成了数字图像,这些像素都有特定的位置和幅值。

取样和量化:将坐标值数字化称为取样;将振幅数字化称为量化。取样和量化的结果是一个实数矩阵。

2.坐标约定(图像大小M*N)

在图像处理书籍中,图像原点一般定义在(x,y)=(0,0)处,而沿图像第一行的下一个坐标值为(x,y)=(0,1), 符号(0,1)表示的是沿第一行的第二个取样,而不是表示图像在取样时的实际物理坐标值。注意:x的范围是从0到M-1的整数,y的范围是从0到N-1的整数。

在图像处理工具箱中,使用(c,r)表示图像的行和列,图像原点定义在(c,r)=(1,1)处,所以c的范围是从1到M的整数,r的范围是从1到N的整数。

在IPT文档中,将图b中的坐标称为像素坐标。IPT还采用另一种较少使用的坐标约定,称为空间坐标,这种坐标使用x来表示列,使用y来表示行。与上述的x、y恰好相反。(后期将不使用IPT坐标)

3.图像的矩阵表示

数字化图像函数表示:等式右边是由定义给出的一幅数字图像,该数组的每一个元素都称为像元、图元或像素。

MATLAB中数字图像表示:其中这里的f(1,1)等于上面的f(0,0),一般来说,用M和N分别表示矩阵中的行与列,1N:行向量;M1:列向量;1*1:标量。

(在MATLAB中,矩阵以变量的形式来存储,变量必须以字母开头,且只能由字母、数字和下划线组成。)

读取图像

使用imread可以将图像读入MATLAB环境:

eg:imread(‘filename’)

注:filename是一个含有图像文件全名的字符串(包括任何可用的扩展名)

比如我们读取一幅位于桌面上、名为“tmp”,格式类型为bmp的图片:

1.首先我们需要保证当前路径位于桌面

2.然后使用imread函数读取图片tmp(需要带上后缀名),回车之后就可以看到每个像素的幅值,从而得到一个和图像分辨率一致的ans的数组(行:202;列:323)。

imread的用法:

>> imread(‘tmp.bmp’)

>> f = imread(‘tmp.bmp’) %读入的图像放入数组f中

>> f = imread(‘C:UsersJANEDesktoptmp.bmp’) %在指定的路径下读取图片,这种方式就不需要保证图像路径与工程路径的一致性。

使用函数size获取图像的大小(行数与列数)

size的用法

>> size(f)

>>[M,N]=size(f)%返回图像的行数(M)和列数(N)

其中,函数whose可以显示出一个数组的附加信息

>> whos f

显示图像

在MATLAB中使用函数imshow显示

imshow的用法

>> imshow(f)

>>imshow(f,g) %g:显示该图像的灰度级数,若将g省略,默认灰度级数256

>>imshow(f,[low,high]) %会将所有小于或等于low的值显示为黑色,所有大于 或等于high的值显示为白色,介于两者之间的值将以默认的级数显示为中等亮度值。

>> imshow(f,[]) %可以将数组f的最小值设置为low,将其最大值设置为high。

当使用imshow显示另一幅图像时,MATLAB会在屏幕上用新图像替换就图像。此时为了保持第一幅图像并同时显示第二幅图像,可以使用figure函数:

>> figure,imshow(f)

另一种常用但是只适用于JPEG格式的图像函数imwrite:

>> imwrite(f,‘filename.tif’) %将图片f保存到当前工作路径下,图片名字 filename,tif表示图片类型。

>> imwrite(f,‘filename’,‘tif’) % 解释同上

>> imwrite(f,‘filename.tif’,‘quality’,q) %q是一个在0到100之间的整数,q越小,图像的退化就越严重。

imfinfo函数的使用

获取图像文件的其他详细信息,可以使用imfinfo,语法结构为:

imfinfo filename %filename:存储在磁盘中的图像的全名

>>imfinfo 1.jpeg %获取图片1.jpeg的详细信息

>> k = imfinfo(‘1.jpeg’); %将由命令imfinfo产生的所有信息存入变量k

注:FileSize:以字节为单位 ;

原图Size = (width * Height * bitdepth)/8;

压缩比 = 原图Size/FileSize;返回搜狐,查看更多

责任编辑:

你可能感兴趣的:(imshow显示用矩阵保存的多张图片_MATLAB实现图像的读取、写入、显示)