图像的数字表示
一副图像可以看成是空间各个座标点的光强度I的集合,其普遍数学表达式为
I = f(x,y,z,λ,t)
其中x,y,z是空间座标,λ是波长,t是时间, I是光点(x,y,z)的强度。
如果衣服图像具有上面的五个属性,那么我们可以认为这幅图像表示一副运动的,彩色的三维的图像。
需要注意的是:
-
对于静止图像,I与t无关,t=0,其数学表达式为 I = f(x,y,z,λ)
-
对於单色图像或者说灰度图像,波长λ是常数,其数学表达式为 I = f(x,y,z,t)
-
对于平面图像,即二维图像,I与座标Z无关,其数学表达式为 I = f(x,y,λ,t)
-
对于一幅平面上静止的灰度图像,数学表达式为I = f(x,y)
二维函数,x和y是平面座标,I在任何座标点(x,y)处的振幅称为图像在该点的亮度
MATLAB读取图像
使用函数imread可以将图像读入,
语法为Imread('filename’),其中filename用单引号括起来,filename是一个含有图像文件全名的字符串。
举例:将JPG格式的lena图像读入图像数组I.
I= imread(‘lenagray.jpg’);
对于Imread函数,当filename中不包含任何路径信息时,imread会从当前目录中寻找并读取图像文件。要想读取指定路径中的图像,最简单的办法就是在filename中输入完整的或相对的路径。比如:
I = imread(‘D:\myimages\lenagray.jpg’); 读取的是驱动器D上myimages的文件夹中的lenagray这幅图像文件。
MATLAB显示图像
imshow(I)命令将图像在matlab环境中显示出来,其中I是上面实例化的对象。
imshow(I)
基本函数imshow()
imshow(f,G):其中f是一个图像数组,G是显示该图像的灰度级数,如果G省略,则默认的灰度级数是256。
imshow(f,[low,high]): 将所有小于等于low的值设置为黑色,所有大于等于high的值设置为白色。介于low和high之间的值将以默认的级数显示为中等亮度。
imshow(f,[ ]): 将变量low的值设置为数组f的最小值 ,将变量high的值设置为数组f的最大值 。
图像的写入操作
1.图像写入——imwrite(A,filename,fmt)
把图像 A 按照fmt指定的格式写入图像文件filename
2.提取图像文件信息——imfinfo(filename, fmt)
•imfinfo函数返回一个结构info,它反映了该图像的各方面信息,其主要数据包括:文件名(路径)、文件格式、文件格式版本号、文件的修改时间、文件的大小、文件的长度、每个像素的位数(BitDepth)、图像的类型(ColorType)、颜色表矩阵(Colormap)等等。
图像数组的行数和列数
函数size可给出一幅图像的行数和列数。
Size(I)
得到结果:Ans = 131 131
如果要自动获取一幅图像的大小时,可以用函数[M,N] = size(I);该语法返回图像的行数M和列数N。
图像的附加信息
函数whos可以显示一个数组的附加信息。例如,语句
Whos I
其中返回的uint8指的是一种matlab数据类型,表示无符号8比特整数,范围为0-255.