基于MATLAB的图像处理研究

基于MATLAB的图像处理研究

1研究目的

由于现阶段,随着科技的发展, 计算机技术的应用已经渗透到社会的方方面 面,而与图像有关的通信、网络、传媒、多媒体等已经给人们的生活带来巨大的 变化。放观长远, 图像技术将在未来的很长一段时间内, 影响着计算机应用的各 个领域。因此,探究图像处理技术对今后计算机图像处理的发展有着很好的前瞻 作用,也为图像处理的技术创新在以后提供理论上的支持。 图像平滑和图像锐化作为图像处理中比较基础且尤为重要的基本方式, 在今后的 数字化的信息时代中仍然会有广泛的用处。 作为基本的图像处理, 在数字技术应 用的许多方面都有需要的地方,无论是计算机,还是微电子、通信工程、嵌入式 系统、传感技术都有着十分重要的地位。

2空域图像处理

  1. 图像平滑基本概述 图像平滑是指用于突出图像的宽大区域、低频成分、主干部分或抑制图像噪

声和干扰高频成分, 使图像亮度平缓渐变, 减小突变梯度, 改善图像质量的图像 处理方法。

  1. 线性滤波(均值滤波)

对一些图像进行线性滤波可以去除图像中某些类型的噪声。 领域平均法就是 一种非常适合去除通过扫描得到的图像中的噪声颗粒的线性滤波。

领域平均法是空间域平滑噪声技术。 对于给定的图像 f i, j 中的每个像素点

m,n,取其领域S。设S含有M个像素,取其平均值作为处理后所得图像像素

点 m,n 处的灰度。用一像素领域内各像素灰度平均值来代替该像素原来的灰度, 即领域平均技术。


2,即方差变小,说明噪声强度减弱了,抑制了噪声。

2.1.2中值滤波

中值滤波是一种非线性滤波,由于它在实际运算过程中并不需要图像的统计 特性,所以比较方便。但是对一些细节多,特别是点、线、尖顶细节多的图像不 宜采用中值滤波的方法。中值滤波的基本原理是把数字图像或数字序列中一点的 值用该点的一个邻域中各点值的中值代替。

设有一个一维序列fi,…,fn,取窗口长度为m(m为奇数),对此序列进 行中值滤波,就是从输入序列中f2相继抽出m个数,f v,…,

v,其中i为窗口的中心位置,v专,再将这M点按其数值大

用数学公式表示为:

小排列,取其序号为正中间的那作为输出。

可以有各种不同的形状,如线状、方形、圆形、十字形、圆环形等。二维数据的


2.1.3滤波效果

在进行滤波前,首先给图像添加噪声,在此,给图像添加高斯噪声和椒盐噪

,并进行均值滤波和中值滤波得到图像如下:


加入高斯噪声后图像

加入椒盐噪声后图像


v2-737fb36912837de70b7d72a9435d5625_b.jpg

v2-baa9bda11bb02ce559e4a6e52d64810f_b.jpg



高斯噪声下均值滤波

椒盐噪声下均值滤波


v2-bf583ca9a2c1b6b9311a44856fc80e83_b.jpg

v2-01e6a675fd0789ca4cdef10531916b6a_b.jpg



高斯噪声下中值滤波

椒盐噪声下中值滤波


v2-95fad1a5ae79e3e21e535e383bdd0f40_b.jpg

v2-322ee0b80110a1cecfc02fe271710500_b.jpg


图1高斯噪声与椒盐噪声下的均值滤波与中值滤波

2.1.4结果分析

中值滤波和均值滤波后,都残留一些噪点,但是均值滤波残留的噪点量要明

显小于中值滤波。说明均值滤波对于线性的高斯噪声的滤波效果要优于中值滤 波。

2.2图像锐化

2.2.1图像锐化的基本概述

图像在传输过程中,通常质量都要降低,除了噪声因素外,图像一般都要变 得模糊。这主要是因为图像的传输或转换系统的传递函数对高频成分的衰减作 用,造成图像的细节轮廓不清晰。图像锐化就是使灰度反差增强,从而增强图像中边缘信息,有利于轮廓抽取。因为轮廓或边缘就是图像中灰度变化率最大的地 方。因此,为了把轮廓抽取出来,就是要找一种方法把图像的最大灰度变化处找 出来。

222拉普拉斯算子一一基于二阶微分的图像增强

Laplacia n 算子是不依赖于边缘方向的二阶微分算子, 是常用的二阶导数算

子.拉普拉斯算子是一个标量而不是向量,具有线性特性和旋转不变,即各向同 性的性质。

拉普拉斯微分算子强调图像中灰度的突变,弱化灰度慢变化的区域。这将产 生一幅把浅灰色边线、突变点叠加到暗背景中的图像。计算数字图像的拉普拉斯 值也可以借助于各种模板。拉普拉斯对模板的基本要求是对应中心像素的系数应 该是正的,而对应于中心像素邻近像素的系数应是负的,它们的和应该为零。 将原始图像和拉普拉斯图像叠加在一起的简单方法可以保护拉普拉斯锐化处理 的效果,同时又能复原背景信息。

拉普拉斯算子是最简单的各向同性微分算子, 具有旋转不变性,比较适用于 改善因为光线的漫反射造成的图像模糊。其原理是,在摄像记录图像的过程中, 光点将光漫反射到其周围区域。

经过推导,可以发现当图像的模糊是由光的漫反射造成时, 不模糊图像等于 模糊图像减去它的拉普拉斯变换的常数倍。另外,人们还发现,即使模糊不是由 于光的漫反射造成的,对图像进行拉普拉斯变换也可以使图像更清晰。

在二维情况下,拉普拉斯算子使走向不同的轮廓能够在垂直的方向上具有类

似于一维那样的锐化效应,

223在拉普拉斯算子下的空域锐化结果如下:


v2-3185737c2923d3b1031ef987c3379c25_b.jpg

v2-82d29440a7eff1e942a47be1055397eb_b.jpg

v2-5167099c8f0c5ebf122bb4ccfbfbfd14_b.jpg

v2-14df765c2b2a0e7c0fb0a8bf82bd284a_b.jpg


拉普拉斯滤波图像(ui nt 8)

拉普拉斯滤波图像(doubl e)

原始图像中减去 ui nt 8

原始图像中减去doubl e

图2拉普拉斯算子下的空域锐化结果

3频域图像处理

3.1基本概述

频率域平滑处理就是选择合适的低通滤波器对其频谱成分进行调整, 然后经

逆傅立叶变换得到平滑图像。其中常用的频率域平滑处理方法一般为频率域低通 滤波法。频率域低通滤波是在分析图像信号的频率特征性时,一幅图像中的边缘、 跳跃部分以及颗粒噪声代表图像信号的高频分量, 而大面积的背景区则代表图像 信号的低频分量。用滤波的方法滤除其高频部分就能去除噪声, 使图像得到平滑。


v2-e9796c7e8ab19580b74b8b4d0deb04f1_b.jpg

v2-1435e7afce9e6c38fd33a7ef69c8d9d3_b.jpg

v2-20e0ff2a4ea700fed2bbb1ac6cf7108f_b.jpg

v2-7a8f2c522a579357c7b80964e8e28ff1_b.jpg

v2-e62e8f01f342cb5838b2aab460dd4066_b.jpg

v2-aa93b6db11e9502fdb771c88f8717e52_b.jpg


3.3 结果分析

经过多次的实践和理论上的推导不难发现图像平滑和图像锐化是两个完全 对立的图像处理技术。 图像平滑让图像中的细节成分越来越少, 而相对的, 图像 锐化则是凸显图像的细节部分。

图像平滑的弊端在于会把图像本身一些很好的细节部分给模糊掉, 从而降低 图像的质量。 对一些分辨率很高而且细节很唯美的图像来说, 图像平滑来处理噪 声反而效果不是很好。

图像锐化则是让图像变得更为清晰。 通过图像锐化可以使图像的细节部分变 得清楚起来。 但是如果图像有噪声, 只会让图像变得更加模糊, 图像锐化不能对 有噪声的图像进行处理。

4 直方图均衡化处理

4.1 基本原理

在实际应用中,希望能够有目的地增强某个灰度区间的图像, 即能够人为 地修正直方图的形状, 使之与期望的形状相匹配,这就是直方图规定化的基本 思想。换句话说,希望可以人为地改变直方图形状,使之成为某个特定的形状, 直方图规定化就是针对上述要求提出来的一种增强技术, 它可以按照预先设定的 某个形状来调整图像的直方图。每一可能的灰度层次所占的像素个数尽量均等, 每个像素具有同样的显示机会,从而使图像细节清晰,改善图像的整体对比度。

4.2直方图及其均衡化结果

直方图


v2-41690bbe66c962e5dc596379931e0a5a_b.jpg




直方图均衡化


v2-95700ba60ee9b7679d71a06f5584f130_b.jpg



图5直方图及其均衡化

参考文献:

  1. 罗军辉.MATLAB7.0在图像处理中的应用[M].机械工业出版社,2006.06
  2. 张毓晋.图像工程(第二版)[M].北京:清华大学出版社,2007.05
  3. 李显宏.MATLAB7.X界面设计与编译技巧[M].电子工业出版社,2006.12
  4. 孙宏琦,施维颖,巨永峰.利用中值滤波进行图像处理[J].长安大学学报(自 然科学版),2003, 23( 2): 104-106

⑸ 程佩青.数字信号处理教程(第二版)[M].北京:清华大学出版社,2007.2

⑹Conzalez R, Woods R. 数字图像处理[M].北京:电子工业出版社,2011.6

附录

%%%%%%%%%空%域%锐%化滤波 %%%%%%%%%%%%%%%%%%

%%%% matla读入图像的数据是uint8,而matlab中数值一般采用double型(64位)存储和运算。

%%%%所以要先将图像转为 double 格式的才能运算。

clear all ; close all

I = imread( 'peng.jpg' );

w=fspecial( 'laplacian' ,0.2) %%%%%%%%%建%立%%拉式算子模板

w8=[1,1,1;1,-8,1;1,1,1] %%%%%%%%%拉%普%%拉斯滤波后的 uint8 图像

I1= imfilter(I,w, 'replicate' );

figure(1)

subplot(2,2,1),imshow(I1), title( ' 拉普拉斯滤波图像( uint8 ) ' ); %%%拉普拉斯滤波后的 uint8 类图像

f = im2double(l); %%%%%%%%% u转换 double 类

f1= imfilter(f,w,'replicate');
subplot(2,2,2),imshow(f1,[]),title( ' 拉普拉斯滤波图像(double ) ' ); %%%拉普拉斯滤波后的 double
类图像
f2= imfilter(f,w8,'replicate');
f4 = f-f1;
f8 = f-f2;
subplot(2,2,3),imshow(f4);title(' 原始图像中减去uint8'); %%%%增强后的结果,从原始图像中
减去 uint8 所得的结果
subplot(2,2,4),imshow(f8);title(' 原始图像中减去double'); %%%%增强后的结果,从原图图像中
减去 double 类所得到的结果:


%%%%%%%%%%%频%域%图%%像%平滑和锐化 %%%%%%%%%%%%%%%% clc;clear all ;close all ;

f=imread ( 'peng.jpg' );

[row,col]=size(f);

gls1=fftshift(g);

gls2=fftshift(g);

H=zeros(row,col);

x0=floor(row/2);

y0=floor(col/2);

u0=x0;v0=y0;

D0=50;%截止频率

n=0.2; %滤波器阶数

for u=1:row

for v=1:col

D=(u-u0)A2+(v-v0F2;

H1(u,v)=1心+(D/D0F(2*n));

H2(u,v)=1心+(D0/DF(2*n));

gls1(u,v) = gls1(u,v)*H1(u,v);

%%%低通滤波(平滑)

%%%高通滤波 (锐化)

gls2(u,v) = gls2(u,v)*H2(u,v);

end

end

%%%%%%%%%%频%域%图%像%平滑 %%%%%%%%%%%%%%%%%%%

figure(1)

rs1=ifftshift(gls1); %%反频移

r1=real(ifft2(rs1)); %%反变换

subplot (2,2,1);imshow(f);

subplot (2,2,2);imshow(uint8(r1));

subplot (2,2,3);imshow(f+uint8(r1));

subplot (2,2,4);

H3=H1(x0,y0:col);

plot(H3);

axis([0 y0 min(H3) max(H3)]);

%%%%%%%%%频%域%%图%像锐化 %%%%%%%%%%%%%%%%

figure(2)

rs2=ifftshift(gls2); %%反频移

r2=real(ifft2(rs2)); %%反变换

subplot (2,2,1);imshow(f);

subplot (2,2,2);imshow(uint8(r2));

subplot (2,2,3);imshow(f+uint8(r2));

subplot (2,2,4);

H4=H2(x0,y0:col);

plot(H4);

axis([0 y0 min(H4) max(H4)]);

%%%%%%直%方%图% 及其均衡化 %%%%%%%%%%%%%

clear;

I=imread( 'peng.jpg' );

I=rgb2gray(I);

I2=I;

add=[];

add1=[];

tab1=zeros(1,256);

tab2=zeros(1,256);

for n=0:255

X=I==n;

add=[add;sum(sum(X))];

end;

[a,b]=size(I);

final=add/(a*b);

for n=1:256

for i=1:n

tab1(n)=tab1(n)+final(i);

end;

end;

tab1=tab1*255;

tab2=round(tab1);

for n=1:a

for m=1:b

for t=0:255

if I(n,m)==t

I2(n,m)=tab2(t+1);

end;

end;

end;

end;

for n=0:255

X1=I2==n;

add1=[add1;sum(sum(X1))];

end;

[a1,b1]=size(I2);

final1=add1/(a1*b1);

figure;

subplot(211);stem(final, 'Marker' , 'none' ); title( ' 直方图 ' )

subplot(212);stem(final1, 'Marker' , 'none' ) ;title( '直方图均衡化 ' )

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值