基于MATLAB的数字图像预处理

1.2.1图像预处理研究的意义

图像预处理是将每一个图像分检出来交给识别模块识别。图像预处理的主要目的是消除图像中无关的信息,恢复有用的真实信息,增强有关信息的可检测性和最大限度地简化数据,从而改进特征抽取、图像分割、匹配和识别的可靠性。

随着电子技术和计算机技术的不断提高,图像预处理技术在视频监控系统中获得了巨大发展。对视频监控系统来说,监控环境中的噪声以及图像在传输、接收过程中会产生的噪声降低了图像质量,使图像模糊。我们可以通过图像增强技术改善图像的质量。在一幅图像中,人们只对图中的某些目标感兴趣,我们通过图像分割技术把图像分割成不同的区域,从而分离出图像中的各个对象,然后从这些区域中获取对象的特征,从而提取出我们感兴趣的目标。

     由于计算机处理能力的不断增强,图像预处理技术在飞速发展的同时,也越来越广泛地向其他学科快速交叉渗透,使得图像在信息获取以及信息利用等方面也变得越来越重要。目前图像预处理的应用越来越广泛,已经渗透到工业、医疗保健、航空航天、军事等各个领域,在国民经济中发挥越来越大的作用。随着计算机的发展,图像预处理技术的应用领域必将继续扩大,充当越来越重要的角色,对于人们的生活产生巨大影响。

1.2.2图像预处理的研究现状及发展趋势

   数字图像处理最早出现于20世纪50年代,当时的电子计算机已经发展到一定水平,人们开始利用计算机来处理图形和图像信息。数字图像处理作为一门学科大约形成于20世纪60年代初期。

早期的图像处理的目的是改善图像的质量,它以人为对象,以改善人的视觉效果为目的。图像处理中,输入的是质量低的图像,输出的是改善质量后的图像,常用的图像处理方法有图像增强、复原、编码、压缩等。

图像处理技术在许多应用领域受到广泛重视并取得了重大的开拓性成就,属于这些领域的有航空航天、生物医学工程、工业检测、机器人视觉、公安司法、军事指导、文化艺术等,使图像处理成为一门引人注目、前景远大的新型学科。随着图像处理技术的深入发展,从70年代中期开始,随着计算机技术和人工智能、思维科学研究的迅速发展,数字图像处理向更高、更深层次发展。人们已经开始研究如何用计算机系统解释图像,实现类似人类视觉系统理解外部世界,这被称为图像理解或计算机视觉。很多国家,特别是发达国家投入更多的人力、物力到这项研究,取得了不少重要的研究成果。其中代表性的成果是70年代末MIT的Marr提出的视觉计算理论,这个理论成为计算机视觉领域其后十多年的主导思想。图像理解虽然在理论方法研究上已取得不小的进展,但它本身是一个比较难的研究领域,存在不少困难,因人类本身对自己的视觉过程还了解甚少,因此计算机视觉是一个有待人们进一步探索新的领域。

对数变换使低灰度变换范围的f得以扩展,而高灰度范围的f得到压缩,以使图像分布均匀,与人的视觉特性相匹配。

(2)编码:

f=imread('0.jpg')

[M,N]=size(f);

g=zeros(M,N);

f=double(f);

g=double(g);

k1=min(min(f));

k2=max(max(f));

a=k1+50;

b=k2-50;

c=k1-30;

d=k2+20;

 for i=1:M

     for j=1:N

         if((f(i,j)>=a)&(f(i,j)

             g(i,j)=((d-c)/(b-a))*(f(i,j)-a)+c;

         end

       if(f(i,j)

             g(i,j)=c;

         end

         if(f(i,j)>=b)

             g(i,j)=d;

         end

     end

 end

  figure;

  subplot(121);

  imshow(f,[]);

  subplot(122);

  imshow(g,[]);

  1. 效果图如图3.1:

                        基于MATLAB的数字图像预处理

图3.1灰度变换

(4)结论:对数灰度变换使图像的高灰度范围得到压缩。

3.1.2 灰度值调整

(1) 灰度值调整用到的函数:J=imadjust(I)

(2)编码:

pout=imread('0.jpg');

pout_imadjust=imadjust(pout);

pout_histeq=histeq(pout);

Subplot(121);imshow(pout);

title('(a)原始图像');

Subplot(122);imshow(pout_imadjust);

title('(b)调整值');

(3)效果图如图3.2:

基于MATLAB的数字图像预处理  基于MATLAB的数字图像预处理

           (a)原图        图3.2灰度值调整             (b)调整值

(4)结论:灰度值调整用于调整灰度值或色图。

3.1.3 直方图均衡化

(1)公式:基于MATLAB的数字图像预处理 基于MATLAB的数字图像预处理基于MATLAB的数字图像预处理 基于MATLAB的数字图像预处理=基于MATLAB的数字图像预处理 基于MATLAB的数字图像预处理(k=0,1,2,…,L-1,0≤基于MATLAB的数字图像预处理 基于MATLAB的数字图像预处理)

式中,nk为灰度级rk的像素数目:

N为图像中像素的总数:

L为像素中可能的灰度级总数。

(2)编码:

I=imread('0.jpg');

J=histeq(I);

subplot(221);imshow(I)

Title('(a)原始图像');

subplot(222);imshow(J)

Title('(b) 原始图像直方图 ');

subplot(223);imhist(I,64)

Title('(c)均衡化图像');

subplot(224);imhist(J,64)

Title('(d)均衡化图像直方图');

基于MATLAB的数字图像预处理

图3.3直方图均衡化

(4)结论:把原始图像的直方图变换成均匀分布的形式,增加像素灰度值的动态范围,达到增强图像整体对比度的效果。

3.1.4 直方图规定化

(1)公式:基于MATLAB的数字图像预处理 基于MATLAB的数字图像预处理基于MATLAB的数字图像预处理 基于MATLAB的数字图像预处理=基于MATLAB的数字图像预处理 基于MATLAB的数字图像预处理(k=0,1,2,…,L-1)

(2)编码:

I=imread('0.jpg');

hgram=0:255;%灰度变换的范围。

J=histeq(I,hgram);

subplot(221);

imshow(I);

title('原始图')

subplot(222);

imshow(J);

title('直方图规定化');

subplot(223);

imhist(I,64)

title('原图像直方统计')

subplot(224);

imhist(J,64)

title('直方图规定化直方统计')

(3)效果图如图3.4:

基于MATLAB的数字图像预处理

图3.4直方图规定化

(4)结论:自动增强整个图像的对比度,具体增强效果不易控制,总是得到全局均衡化的直方图。

(2)编码:

I=imread('0.jpg');

J=imnoise(I,'gaussian',0.025);

subplot(221);imshow(I);

title('原始图像');

subplot(222);imshow(J);

title('高斯噪声图像');

k1=filter2(fspecial('average',3),J);

subplot(223);imshow(uint8(k1));

title('4*4模板平滑滤波器');

k2=filter2(fspecial('average',5),J);

subplot(224);imshow(uint8(k2));

title('5*6模板平滑滤波器');

(3)效果图如图3.5:

基于MATLAB的数字图像预处理

图3.5平滑滤波器

(2)编码:

I=imread('0.jpg');

subplot(2,3,1);imshow(I);

title('(a)原始图像');

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

subplot(2,3,2);imshow(J);

title('(b)椒盐噪声图像');

k=medfilt2(J,[3,3]);

subplot(2,3,3);

imshow(k,[]);

title('(c)中值滤波');

subplot(2,3,4);imshow(I);

title('(d)原始图像');

J2=imnoise(I,'gaussian',0.01);

subplot(2,3,5);imshow(J2);

title('(e)高斯噪声');

k2=medfilt2(J2);

subplot(2,3,6);imshow(k2,[]);

title('(f)中值滤波');

(3)效果图图3.6:

基于MATLAB的数字图像预处理

图3.6中值滤波器

(4)结论:适用于脉冲干扰,脉冲宽度较小,相距较远的在脉冲。

(2)编码:

RGB=imread('0.jpg');

subplot(131);imshow(RGB);

title('(a)原始图像')

I=rgb2gray(RGB);

J=imnoise(I,'gaussian',0,0.025);

subplot(132);imshow(J);

title('(b)高斯噪音图像')

k=wiener2(J,[5 5]);

subplot(133);imshow(k);

title('(c)自适应滤波处理')

(3)效果图图3.7:

基于MATLAB的数字图像预处理

图3.7自适应滤波器

(4)结论:根据图像的局部方差来调整滤波器的输出,局部方差大时,滤波器的平滑效果较弱,反之则较强。

(1)编码:

I=imread(‘0.jpg’);

h=fspecial(‘laplacian’);

I2=filter2(h,I);

subplot(121);imshow(I);

xlabel(‘(a)原图像’);

subplot(122);imshow(I2);

xlabel(‘(b)滤波后图像’);

  1. 效果图图3.8

基于MATLAB的数字图像预处理     基于MATLAB的数字图像预处理

图3.8锐化滤波器

(4)结论:突出图像的边缘信息,加强图像的轮廓特征,便于识别。

(2)编码

I=imread('0.jpg');

 I=rgb2gray(I); 

figure(1),imshow(I);

 title('原图像');

 s=fftshift(fft2(I));

 figure(2); 

imshow(abs(s),[]); 

title('图像傅里叶变换所得频谱');

 [a,b]=size(s); 

a0=round(a/2); 

b0=round(b/2); 

d=10; 

for i=1:a     for j=1:b         

distance=sqrt((i-a0)^2+(j-b0)^2);      

   if distance<=d h=1;   

      else h=0;      

   end; 

        s(i,j)=h*s(i,j);    

 end; end; 

s=uint8(real(ifft2(ifftshift(s)))); 

figure(3);

 imshow(s); 

title('低通滤波所得图像');

(3)效果图图3.9

基于MATLAB的数字图像预处理     基于MATLAB的数字图像预处理

                       图3.9高通滤波

(4)结论:衰减高频信息,是低频信息畅通无阻。

3.4 彩色增强

3.4.1 真彩色增强

(1)编码:

RGB=imread(‘0.jpg’);

subplot(221);imshow(RGB);

xlabel1(‘(a)原始真彩图像’);

subplot(222);imshow(RGB(:,:,1));

xlabel1(‘(b)真彩色图像红色分量’);

subplot(223);imshow(RGB(:,:,1));

xlabel1(‘(c)真彩色图像绿色分量’);

subplot(224);imshow(RGB(:,:,1));

xlabel1(‘(d)真彩色图像蓝色分量’);

(2)效果图 图3.10

基于MATLAB的数字图像预处理

图3.10真彩色增强