论文导读:MATLAB是MathsWorks公司的商业软件。3.利用小波变换获得图像增强。
关键词:MATLAB,图像增强,边缘检测
0 引言
MATLAB是MathsWorks公司的商业软件。从1984年推出至今,经过不断的完善与发展,已成为覆盖多个学科的国际公认优秀的数值计算仿真软件。许多复杂的计算问题只需短短几行代码就能在MATLAB中实现。论文格式。作为一个跨平台软件,MATLAB已推出 Unix, Windows,和 Mac等十多个操作系统的版本,大大方便了在不同操作系统平台下的研究工作,目前基于Windows系统的最新版本是MATLAB7.0,它秉承以往版本的优点并且人机界面友好,非常容易使用。MATLAB语法结构简单,具有高质量的图形可视化效果和强大的界面设计能力,因而在数字图像处理中有着其他语言所无法比拟的优势,已成为近几年来国内外处理图像使用最为广泛的优秀科技软件之一。论文格式。本文在MATLAB7.0及其图象处理工具箱的基础上,介绍MATLAB在图象处理与研究中的应用。
1 MATLAB概述
MATLAB是Matrix Laboratory的缩写,事实上MATLAB既表示一种交互式的数值计算软件,又表示一门高级科学计算语言。MATLAB语言是一种直译式语言,其语法规则非常类似BASIC语言,有编程基础的人很快就可以熟悉并使用它[1]。它把计算、图示和编程集成到一个易用的交互式环境中,用大家熟悉的数学表达式来描述问题和求解方法从而使许多用C或FOR-TRAN实现起来十分复杂费时的问题用MATLAB可以轻松解决。
MATLAB的典型应用包括:数学计算、算法研究、数据分析和可视化、建模与仿真等。其最重要的功能就是进行矩阵的数值运算,它的数值分析、模拟与运算功能非常强大,而且程序结构完整,具有很强的平行移植性。因此,在图像处理、自动控制、语音处理、信号分析等工业领域,MATLAB是研究、开发和分析首选的计算工具。其图像处理工具箱( ImageProcessing Toolbox)提供了将近200种最基本的图像处理函数,利用这些图像处理工具箱,结合其强大的数据处理能力,我们可不必关心图像文件的格式、读写、显示等细节,而把精力集中在算法研究上,大大提高了工作效率。同时,在测试这些算法时既可方便地得到统计数据,又可得到直观图示。
2 利用MATLAB实现图像增强
图像增强技术主要有空域增强和频域增强技术两种:
2.1 空域增强技术
空域法是在原图像上直接进行数据运算,主要是对图像中的各个像素点进行操作。常用的空域增强方法有灰度变换、灰度直方图均衡化。
1.灰度变换
灰度变换是对图像像素灰度值进行修正,使图像灰度值动态范围加大,对比度扩展,成像均匀清晰,达到改善图像质量的目的。用Matlab编程,可以将图像的灰度值调整到一个指定的范围。对图pout.tif进行灰度变换的程序[2]如下
%读入并显示原始图像
I=imread ('pout.tif');
imshow(I);I=double(I);[M,N]=size(I);
%进行线性灰度变换
for i=1:M
for j=1:N
if I(i,j)<=30
I(i,j)=I(i,j);
else if I(i,j)<=150
I(i,j)=(200-30)/(150-30)*(I(i,j)-30)+30;
else
I(i,j)=(255-200)/(255-150)*(I(i,j)-150)+200;
end
end
end
%显示变换后的结果
figure(2);imshow(I);
运行结果如图1所示
(a)原图(b)灰度变换后
图1 Pout原图与灰度变换后的图像
2.灰度直方图均衡化
灰度直方图(histogram)是灰度级的函数,描述图像中每种灰度级像素的个数,反映图像中每种灰度出现的频率。横坐标是灰度级,纵坐标是灰度级出现的频率。用均衡化的方法把原始图像不均衡的直方图变换为均匀分布的形式,增加灰度值的动态范围,达到增强图像整体对比度的效果。以原图circuit.tif为例,执行灰度直方图均衡化的代码如下:
I=imread('circuit.tif');
figure; subplot(221);imshow(I);subplot(222);imhist(I)
I1=histeq(I);
figure;subplot(221);imshow(I1);subplot(222);imhist(I1)
执行后的效果如图2所示
图2 直方图均衡化
2.2 频域增强技术
频域法是从另外一个角度来分析图像信号的特性。即首先将图像从空间域变换到频域,然后进行各种各样的处理,再将所得到的结果进行反变换,从而达到图像处理的目的。
1.采用巴特沃斯低通滤波器去噪。一般图像的边缘和噪声对应与傅立叶变换中的高频部分,所以能够让低频信息通过同时滤掉高频分量,因而此技术能够平滑图像,去除噪声。论文格式。
2.采用巴特沃斯高通滤波器对图像锐化处理。由于图像中灰度发生骤变的部分与其频谱高频分量相对应,可以采用高通滤波器衰减或抑制低频分量,使高频分量畅通并能够对图像进行锐化处理。所以低通滤波后让高频信息通过,在像面上显示了图像的细节,图像边缘部分得到加强。
3.利用小波变换获得图像增强。利用小波变换对图像进行二尺度分解,对感兴趣的部分进行增强。对低频系数进行放大,对高频系数进行缩小,可以有效去除图像的噪声、增强图像轮廓。
对加入椒盐噪声的图像eight.tif作巴特沃斯低通滤波,程序如下
I=imread ('eight.tif');
J=imnoise(I,'salt & pepper',0.02); %给原图像加入椒盐噪声,如图(a)所示
subplot(121);imshow(J);title('含有椒盐噪声的图像');J=double(J);
%采用傅立叶变换
f=fft2 (J);
%数据矩阵平衡
g=fftshift(f);[M,N]=size(f);n=3;d0=20;n1=floor(M/2);n2=floor(N/2);
for i=1:M
forj=1:N
d=sqrt((i-n1)^2-(j-n2)^2);
h=1/(1+(d/d0)^(2*n));
g(i,j)=h*g(i,j);
end
end
g=ifftshift(g);g=uint8(real(ifft2(g)));
subplot(122);imshow(g);
处理结果如图3所示,可以看出巴特沃斯低通滤波对于滤除图像的椒盐噪声非常有效,在噪声图像上的椒盐噪声斑点全部被去除,达到了图像增强的目的。
(a)eight含有椒盐噪声的图像 (b)eight经巴特沃斯低通滤波后的图像
图3 加噪声和经巴特沃斯低通滤波后的图像
3 利用MATLAB实现图像边缘检测
通常不同区域之间的边缘上像素灰度值的变化往往比较剧烈,这是边缘检测方法得以实现的主要假设之一。可以使用累计直方图计算两个阈值,大于高阈值的一定是边缘,小于低阈值的一定不是边缘,介于之间的,看这个像素的邻接像素中有没有超过高阈值的边缘像素,如果有的话那么它就是边缘了,否则它就不是边缘。边缘检测的基本思想首先是利用边缘增强算子,突出图像中的局部边缘,然后定义象素的“边缘强度”,通过设置阈值的方法提取边缘点集。由于噪声和模糊的存在,监测到的边界可能会变宽或在某点处发生间断。因此,边界检测包括两个基本内容:
1.用边缘算子提取出反映灰度变化的边缘点集。
2.在边缘点集合中剔除某些边界点或填补边界间断点,并将这些边缘连接成完整的线。
常用的检测算子有微分算子、拉普拉斯高斯算子和canny算子[3]。MATLAB工具箱提供的edge()函数,可针对Roberts算子、sobel算子、perwitt算子和canny算子实现边缘检测的功能。下面使用这四种算子对图像cameraman.tif进行边缘检测。程序代码如下,效果图如图4所示。
f=imread('cameraman.tif');
subplot(2,2,1);imshow(f);title('原始图像');
[g,t]=edge(f,'roberts',[],'both');
subplot(2,2,2);imshow(g);title('Roberts算子分割的结果');
[g,t]=edge(f,'sobel',[],'both');
subplot(2,2,3);imshow(g);title('sobel算子分割的结果');
[g,t]=edge(f,'prewitt',[],'both');
subplot(2,2,4);imshow(g);title('prewitt算子分割的结果');
(a)原始图像(b)Roberts算子分割结果
(c)sobel算子分割结果(d)perwitt算子分割结果 (e)canny算子割结果
4 结语
MATLAB具有多种强大功能,语言自然,界面友好,开放性强,易学易用,使得它在各行各业的应用范围越来越广,尤其在图像处理方面。总之,MTALAB作为一个强大的数据处理软件为我们进行科学研究提供了极大的方便。
参考文献
[1].张智星MATLAB程序设计与应用[M]清华大学出版社 北京 2002.4
[2].周广芬 李 鹏杨久义 利用MATLAB图像处理工具箱进行图形数字化的研究 [J] 河北科技大学学报 2005.12
[3].魏弘博 吕振肃 蒋田仔 刘新艳 图像分割技术纵览 [J] 甘肃科学学报 第16卷第2期2004.6
|