图像的数字表示和读写操作(MATLAB)

图像的数字表示

一副图像可以看成是空间各个座标点的光强度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.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章