图像增强剂matlab实现

来源:互联网 发布:淘宝客直播程序破解版 编辑:程序博客网 时间:2024/04/28 23:34

图像增强技术主要包括:直方图修改处理,图像平滑处理,图像尖锐化处理,彩色图像处理。从纯技术上讲主要有两类:1)频域处理法2)空域处理法;频域处理法主要是卷积定理,采用修改图像傅立叶变换的方法实现对图像的增强处理技术;空域处理法:是直接对图像中的像素进行处理,基本上是以灰度映射变换为基础的。

2.1 空域滤波增强

  空域滤波增强:使用空域模板进行的图像处理被称为空域滤波,模板本身被称为空域滤波器。空域滤波器包括:线性滤波器和非线性滤波器

  空域滤波处理效果来分类,可以分为平滑滤波器,和锐化滤波器,平滑的目的在于消除混杂在图像中的干扰因素,改善图像质量,强化图像表现特征。锐化的目的在于增强图像边缘,以及对图像进行识别和处理。

2.1.1 平滑滤波器:用于模糊处理和减小噪声,

   线性平滑滤波器

  平滑线性空间滤波器的输出(响应)是包含在滤波掩模邻域内像素的简单平均值。因此这些滤波器也被称为均值滤波器。平滑滤波器的概念很简单:它是用滤波掩模确定的领域内像素的平均值去代替图像每个像素点的值。这种处理减少了图像灰度的尖锐化。

注:每个掩模前边的乘数等于它的系数值的和,以计算平均值。 (详见数字图像处理P­­93)

我们经常用这些极端类型的模糊处理来去除图像中的一些小物体。

例子:在matlab中利用线性平滑滤波器处理一副图像(详见matlab7.0图像处理)

    I=imread('eight.tif');

    J=imnoise(I,'salt & pepper',0.02);

>> %添加椒盐噪声

>> subplot(221)

>> imshow(I)

>> title('原图像')

>> subplot(222)

>> imshow(J)

>> title('添加椒盐噪声图像')

K1=filter2(fspecial('average',3),J)/255;

>> %应用3*3邻域窗口法

>> subplot(223),imshow(K1)

>> K2=filter2(fspecial('average',7),J)/255;

>> %应用7*7邻域窗口法

>> subplot(224),imshow(K2)

领域平均法有力的抑制了噪声,同时也由于平均而引起了模糊(加宽)现象,模糊程度与邻域半径成正比。

2.1.2中值滤波器 (最大值滤波器和最小值滤波器)

  基本原理是把数字图像或数字序列中某一点的值用该点的一个邻域中各点值的中值交换。

中值滤波器的窗口可以取方形,圆形,十字形等。

2.1.3锐化滤波器

锐化处理主要目的是突出图像中的细节或者增强被模糊了的细节,这种模糊不是由于错误操作,就是特殊图像获取方法的固有影响。

1)微分法

梯度是图像处理常用的一次微分方法。在灰度骤变区域,梯度值大,在灰度相似区域,梯度值小。在灰度级为常数的区域,梯度为零

Laplacian算子是线性二次微分算子,与梯度算子一样,具有旋转不变性,从而满足不同走向的图像边界的锐化要求。

2)模板匹配法

此法除了能够增强图像边缘外,还具有平滑噪声的优点。

2.2 频率域增强

2.2.1 低通滤波器

一幅图像的边缘,跳跃部分以及颗粒噪声代表图像信号的高频分量,而大面积的背景区域代表了图像信号的低频分量。低通滤波器的作用就是滤除这些高频分量,保留低频分量,使图像信号平滑。

包括:理想低通滤波器,布特沃斯低通滤波器,指数低通滤波器和梯形低通滤波器等。

2.2.2 高通滤波器

与低通滤波器相反,它将高频信号通过,而抑制了低频信号。

2.2.3同态滤波器

把频率过滤和灰度变换结合起来的图像处理方法叫同态滤波。他是把图像的照明反射模型作为频域处理的基础,利用压缩亮度范围和增强对比度来改善的一种处理技术。

频域增强实例

I=imread('saturn.png');

>> J=imnoise(I,'salt & pepper',0.02);

>> 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

    for j=1:N

        d=sqrt(i-n1)^2+((i-n2)^2);

h=1/(1+0.414*(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)

>> title('三阶Butterworth滤波图像')

 

http://siyuu.blogbus.com/logs/17516394.html

0 0
原创粉丝点击