实验一 Matlab语言及数字图像处理基本操作 联系客服

发布时间 : 星期六 文章实验一 Matlab语言及数字图像处理基本操作更新完毕开始阅读f02313d3f8c75fbfc77db278

实验一 Matlab语言及数字图像处理基本操作

一、实验目的

1、学习MATLAB语言的基本用法;

2、掌握MATLAB语言中图像数据与信息的读取方法; 3、掌握在MATLAB中绘制灰度直方图的方法; 4、掌握灰度直方图的均衡化的方法; 5、利用基本灰度变换对图像进行增强

二.实验环境及开发工具

Windws XP、MATALAB7.0

三.实验原理及方法

1、验证MATLAB中图像数据的读写及显示 (1)imread

imread函数用于读入各种图像文件,其一般的用法为 [X,MAP]=imread(‘filename’,‘fmt’)

其中,X,MAP分别为读出的图像数据和颜色表数据,fmt为图像的格式,filename为读取的图像文件(可以加上文件的路径)。

(2)imwrite

imwrite函数用于输出图像,其语法格式为:

imwrite(X,map,filename,fmt)按照fmt指定的格式将图像数据矩阵X和调色板map写入文件filename。

(3)imfinfo

imfinfo函数用于读取图像文件的有关信息,其语法格式为 imfinfo(filename,fmt)

imfinfo函数返回一个结构info,它反映了该图像的各方面信息,其主要数据包括:文件名(路径)、文件格式、文件格式版本号、文件的修改时间、文件的大小、文件的长度、文件的宽度、每个像素的位数、图像的类型等。

(4)MATLAB中图像文件的显示 imshow

imshow函数是最常用的显示各种图像的函数,其语法如下: imshow(X,map)

其中X是图像数据矩阵,map是其对应的颜色矩阵,若进行图像处理后不知道图像数据的值域可以用[]代替map。

需要显示多幅图像时,可以使用figure语句,它的功能就是重新打开一个图像显示窗口。

2、验证图像对比度增强函数Imadjust

如果原图像f(x,y)的灰度范围是[m,M],我们希望调整后的图像g(x,y)的灰度范围是[n,N],那么下述变换,,就可以实现这一要求。

MATLAB图像处理工具箱中提供的imadjust函数,可以实现上述的线性变换对比度增强。Imadjust函数的

语法格式为:

J = imadjust(I,[low_in high_in],[low_out high_out])

J = imadjust(I,[low_in high_in],[low_out high_out])返回图像I经过直方图调整后的图像J,

[low_in high_in]为原图像中要变换的灰度范围,[low_out high_out]指定了变换后的灰度范围。

3、验证MATLAB中灰度直方图的显示

MATLAB图像处理工具箱提供了imhist函数来计算和显示图像的直方图,imhist函数的语法格式为:

imhist(I,n) imhist(X,map)

其中imhist(I,n)计算和显示灰度图像I的直方图,n为指定的灰度级数目,默认值为256。imhist(X,map)计算和显示索引色图像X的直方图,map为调色板。

4、验证直方图均衡化

MATLAB图像处理工具箱提供了histeq函数来均衡化直方图,histeq函数的语法格式为:

J=histeq(I,n)

newmap=histeq(X,map)

其中imhist(I,n)是对灰度图像I的直方图均衡化,n为指定的灰度级数目,默认值为256。histeq(X,map)是对索引图像而言。

5、利用基本灰度变换对图像进行增强

灰度变换原理:灰度变换是一种空域处理方法,其本质是按一定的规则修改每个像素的灰度,从而改变图像的动态范围实现期望的增强效果。灰度变换按映射函数可分为线性、分段线性和非线性等多种形式。

(1)线性灰度变换

线性灰度变换是将输入图像灰度值的动态范围按线性关系公式拉伸扩展至指定范围或整个动态范围。可突出感兴趣目标,抑制不感兴趣的目标。在实际运算中,原图像f(x,y)的灰度范围为[a,b],使变换后图像g(x,y)的灰度扩展为[c,d],则采用下述线性变换来实现:

g(x,y)?d?c[f(x,y)?a]?cb?a

线性灰度变换对图像每个灰度范围作线性拉伸,将有效地改善图像视觉效果。 (2)分段线性灰度变换

为了突出图像中感兴趣的研究对象,常常要求局部拉伸某一范围的灰度值,或对

不同范围的灰度值进行不同拉伸处理,即分段线性拉伸,数学表达式如下:

?c0?f(x,y)?a?af(x,y)??d?cg(x,y)??[f(x,y)?a]?ca?f(x,y)?bb?a??Mg?db?f(x,y)?Mf?Mf?b[f(x,y)?b]?d?(3)非线性灰度变换

非线性灰度变换在整个灰度范围内采用统一的变换函数,利用变换函数的数学性质实现对不同灰度值区间的扩展和压缩。

1、对数扩展。对数变换常用来扩展低值灰度,压缩高值灰度,这样可以使低值灰度的图像细节更容易看清,从而达到增强的效果。还可使图像灰度分布与人视觉特性相匹配。其具体形式为:

g(x,y)?cln[f(x,y)?1]

式中:[f(x,y)+1]是为了避免对零求对数;C为尺度比例系数,用于调节动态范围。

四.实验要求

copy两个图像文件cameraman.tif和football.jpg到MATLAB目录下work文件夹中。

1、 将MATLAB目录下work文件夹中的football.jpg图像文件读出,用到imread,imfinfo等文件,观察一下图像数据,了解一下数字图像在MATLAB中的处理就是处理一个矩阵。将这个图像显示出来(用imshow)。

2、将MATLAB目录下work文件夹中的cameraman.tif图像文件读出,显示它的图像及灰度直方图,可以发现其灰度值集中在一段区域,用imadjust函数将它的灰度值调整到[0,1]之间,并观察调整后的图像与原图像的差别,调整后的灰度直方图与原灰度直方图的区别。

3、将MATLAB目录下work文件夹中的cameraman.tif图像文件读出,显示它的图像及灰度直方图,用histeq函数均衡化直方图并将其图像和灰度直方图显示出来,并观察调整后的图像与原图像的差别。

4、利用基本灰度变换原理,编写程序对cameraman.tif图像进行增强

五.实验结果及结论