当前位置:文档之家› 图像处理的matlab实现

图像处理的matlab实现

成绩:数字图像处理实验报告实验二:图像处理的matlab的实现学号:0967118225姓名:洪旭浩同组人:电脑编号:实验时间:2010年6月4日星期一数字图像处理实验报告一、实验名称图像处理的matlab 的实现二、实验目的1、了解Matlab 及其工具箱的基本使用方法2、掌握使用Matlab 打开各种图像文件的方法3、掌握使用Matlab 进行简单图像处理的方法三、实验平台Windows XP,Matlab 7.8.0(R2009a)四、实验内容一、直方图均衡化直方图均衡化处理可将图像的灰度范围拉开,让灰度直方图在较大的动态范围内趋于一致。

用图像),(y x f 的直方图代替灰度的分布密度函数)(f p f ,则直方图均衡化后的图像g 为:⎰==ff du u p f Tg 0)(][对于数字图像,设原图像的像素总数为N,灰度级的个数为L,第k 个灰度级出现的频数为k n 。

若原图像),(y x f 在像素点),(y x 处的灰度为k r ,则直方图均衡化后的图像),(y x g 在),(y x 处的灰度k s 为:∑===kl lk k Nn r T s 0][MATLAB 图像处理工具箱提供了用于直方图均衡化的函数histep。

histep 函数的语法格式为:J=histep(I,hgram)J=histep(I,n)[J,T]=histep(I,…)newmap=histep(X,map,hgram)newmap=histep(X,map)[newmap,T]=histep(X,…)其中J=histep(I,hgram)将原始图像I 的直方图变成用户指定的向量hgram,hgram 中的各元素值域为[0,1]。

J=histep(I,n)指定直方图均衡化后的灰度级数n,默认值为64。

[J,T]=histep(I,…)返回能将图像I 的灰度直方图变换成图像J 的直方图的变换T。

newmap=histep(X ,map ,hgram)、newmap=histep(X ,map)和[newmap ,T]=histep(X,…)是针对索引色图像调色板的直方图均衡化。

1、使用以上语句,实现选定图像的直方图均衡化;2、修改部分参数,观察不同参数下直方图均衡化的变化规律;3、记录不同参数,并对实验进行截图,分析实验得出的规律。

二、邻域平均法实际的图像一般都会受到某种干扰而含有噪声,噪声产生的原因决定了噪声的分布特性及它和图像信号的关系。

根据噪声和信号的关系可以将其分为两种形式:1.加性噪声:有的噪声与图像信号),(y x g 无关,在这种情况下,含噪图像),(y x f 可表示为:),(y x g =),(y x f +),(y x n 信道噪声及扫描图像时产生的噪声都属于加性噪声。

2.乘性噪声:有的噪声与图像信号有关。

这可以分为两种情况:一种是某像素处的噪声只与该像素的图像信号有关,另一种是某像点处的噪声与该像素及其邻域的图像信号有关。

如果噪声和信号成正比,则含噪图像),(y x f 可以表示为:),(y x g =),(y x f +),(y x n ),(y x g 也可根据噪声服从的分布对其进行分类,如高斯噪声、泊松噪声和颗粒噪声等。

泊松分布噪声一般出现在照度非常小及用高倍电子线路放大的情况下,椒盐噪声对以认为是泊松噪声。

其它的情况通常为加性高斯噪声。

颗粒噪声可以认为是一白噪声过程,在密度域中是高斯分布加性噪声,而在强度域中为乘性噪声。

MATLAB 图像处理工具箱提供了模拟噪声生成的函数imnoise,它可以对图像添加一些典型的噪声。

imnoise 的语法格式为:J=imnoise(I,type)J=imnoise(I,type,parameters)其中J=imnoise(I,type)返回对原始图像I 添加典型噪声的有噪图像J。

参数type 和parameters 用于确定噪声的类型和相应的参数。

邻域平均法是空间域平滑噪声技术。

对于给定的图像),(y x f 中的每个像点(m,n),取其邻域S。

设S 含有M 个像素,取其平均值作为处理后所得图像像点(m,n)处的灰度。

邻域S 的形状和大小根据图像特点确定。

一般取的形状是正方形、矩形及十字形等。

邻域S 的形状和大小可以在全图处理过程中保持不变,也可根据图像的局部统计特性而变化,点(m,n)一般位于S 的中心。

如S 为3⨯3邻域,点(m,n)位于S 中心,则:∑∑-=-=++=l i l j j n i m g n m g 11),(91),假设噪声n 为加性噪声,在空间各点互不相关,且期望为0,方差为2δ,f 是未受污染的图像,含有噪声的图像g 经过邻域平均后变为:∑∑∑+==),(1),(1),(1),(j i n j i f j i g n m g 由上式可知,经邻域平均后,噪声的均值不变,方差Ma 12=δ2δ,即噪声方差变小,说明噪声强度减弱了,即抑制了噪声。

由上式还可看出,邻域平均法也平滑了图像信号,特别是可能使图像目标区域的边界变得模糊。

对图像进行邻域平均处理相当于图像信号通过一低通滤波器。

可用下面的命令对一幅含噪图像进行去噪处理:I=imread(‘eight.tif’);I=imnoise(I,‘gaussian’,0,0.02);%添加均值为0,方差为0.02的高斯噪声。

Imshow(I);h=[111111111];%产生滤波模板。

h=h/9;%对滤波模板归一化。

J=conv2(I,h);%用均值模板对图像滤波。

figure imshow(J,[])1、使用以上语句,对选定图像进行领域平均法滤波;2、修改部分参数,观察不同参数下领域平均法滤波的变化规律;3、记录不同参数,并对实验进行截图,分析实验得出的规律。

三、soble 算子图像模糊是常见的图像降质问题。

在图像摄取、传输及处理过程中有许多因素可以使图像变模糊。

如果系统高频性能就会损失图像高频分量,而使图像不清晰。

在对图像进行数字化时,实际取样点总是有一定的面积,所得的样本是这个具有一定面积的区域的亮度平均值,若取样点正好在边界上,则使样本值降低,从而使数字图像的边界变得不清楚。

各种图像变模糊的物理过程的数学模型一般含有求和、平均或积分运算。

在某些应用中,可以不必深究图像变模糊的物理过程及其数学模型,而根据各种图像变模糊的过程都有相加或积分运算这一共同点,在空间域中运用微分运算增强图像,也可在频域中用加强信号高频分量的方法增强图像。

因为需要锐化的边界可能是任意走向的,因此锐化算子是无方向的,即无论边界是什么走向,只要幅度相同,算子的输出就相同。

故梯度模算子和拉氏算子都是无方向性的。

数字图像处理中,常用soble 算子对图像进行处理。

Soble 算子的表达式为:⎪⎪⎪⎭⎫ ⎝⎛---121000121⎪⎪⎪⎭⎫ ⎝⎛---101202101x 方向算子y 方向算子soble 算子的特点是对称的一阶差分,对中心加权。

利用soble 算子对图像进行滤波可用下面的语句实现:load imdemos flowerI=flower;h=fspecial(‘soble’);Imshow(I);J=filter2(h,I);Figureimshow(J,[])利用soble算子对图像进行边缘提取可用下面的语句实现:I=imread(‘rice.tif’);Imshow(I);BW1=edge(I,‘soble’);figure,imshow(BW1)1、使用以上语句,利用soble算子对选定图像进行滤波和边缘提取;2、修改部分参数,观察不同参数下利用soble算子对选定图像进行滤波和边缘提取的变化规律;3、记录不同参数,并对实验进行截图,分析实验得出的规律。

五、代码分析一,直方图均衡化代码:I=imread('1tw.jpg');%读取原真彩色图像I=rgb2gray(I);%将原图像转化为灰度图figure,subplot(1,2,1),imshow(I);%显示原图像灰度图title('原图像灰度图')subplot(1,2,2),imhist(I);%显示原图像灰度图的直方图title('源图像灰度图的直方图')J=histeq(I,256);%对原图像灰度图均衡化figure,subplot(1,2,1),imshow(J);%显示均衡化后的灰度图title('均衡化灰度图')subplot(1,2,2),imhist(J);%显示均衡化后的直方图title('均衡化后的直方图')修改:将J=histeq(I,256);中的256改为64然后进行处理得到灰度级位64的均衡化直方图,进行比较。

代码:二,邻域平均法代码:I=imread('1tw.jpg');%读取原真彩色图像I=rgb2gray(I);%将原图像转化为灰度图I=imnoise(I,'gaussian',0,0.02);%在原图像灰度图中添加均值为0,方差为0.02的高斯噪声h=[111111111];%产生8-邻域加权平均权值M=1的滤波模板h=h/9;%对滤波模板归一化J=conv2(double(I)/255,h);%用均值模板对图像滤波。

subplot(1,2,1),imshow(I);%显示添加噪声后的灰度图subplot(1,2,2),imshow(J);%显示经过邻域平均法后的灰度图修改:将滤波模板换成另外的加权滤波模h=[121;242;121],然后进行处理得到所要图像,进行比较。

三,soble算子:I=imread('1tw.jpg');%读取原真彩色图像I=rgb2gray(I);%将原图像转化为灰度图h=fspecial('sobel');J=filter2(h,I);%用sobel算子对图像滤波BW1=edge(I,'sobel');%用sobel算子对图像进行边缘提取Subplot(2,2,1),imshow(I)%显示原图像灰度图subplot(2,2,3),imshow(J);%显示进行sobel算子滤波后的图像subplot(2,2,4),imshow(BW1);%显示进行sobel算子提取边缘的图像修改:将原图像灰度图加入高斯噪声后再用5x5的中值滤波窗口滤波,再将次图像进行sobel算子滤波和边缘提取,得到想要的图像,进行比较。

六、实验过程一直方图均衡化①选取一张自己喜欢的图像;②编写实现图像均衡化的matlab代码;③运行程序,得到直方图和均衡化后的直方图,进行比较;④修改代码中的均衡化的灰度级,得到想要的图像,与上一个比较。

相关主题