数字图像处理实验三图像增强

一、实验目的

(1)了解图像增强的目的及意义,加深对图像增强的

     感性认识,巩固所学的图像增强的理论知识和相

     关算法。

(2)熟练掌握直方图均衡化和直方图规定化的计算过

     程。

(3)熟练掌握空域滤波中常用的平滑和锐化滤波器。

(4)熟练掌握低通和高通滤波器的使用方法,明确不

     同性质的滤波器对图像的影响和作用。

(5)掌握最简单的伪彩色变换方法。

二、实验内容

(1)任意选择几幅图像,对其进行平滑处理,用

     不同的平滑模板,对结果进行分析。

(2)任意选择几幅图像,对其进行中值滤波,用

     不同的滤波模板对结果进行分析。

(3)任意选择几幅图像,对其进行梯度锐化,选

     择不同的阈值参数,观察图像有何变化。

(4)对图像进行伪彩色变换,比较彩色增强后的

     图像与原图像有何不同。

三、实验代码及结果、分析

(1)平滑滤波----邻域平均法

  • 代码:

I=imread('E:\JZ数字图像处理\实验3\shiyansan.jpg');

I=rgb2gray(I);

J=imnoise(I,'salt & pepper',0.03);       %加均值为0,方差为0.03的椒盐噪声G=imnoise(I,'gaussian',0.03);             %加均值为0,方差为0.03的高斯噪声。

A=fspecial('average',[4,4]); %4x4均值滤波

A1=fspecial('average',[6,6]); %6x6均值滤波

A2=fspecial('average',[8,8]); %8x8均值滤波

A3=fspecial('average',[10,10]); %10x10均值滤波

J1= imfilter(J,A);  %imfilter均值滤波函数

J2= imfilter(J,A1);  

J3= imfilter(J,A2);  

J4= imfilter(J,A3);   

G1= imfilter(G,A);  

G2= imfilter(G,A1);  

G3= imfilter(G,A2);  

G4= imfilter(G,A3);  

figure(1)

subplot(2,3,1),imshow(I),title('原图像');

subplot(2,3,4),imshow(I),title('原图像');

subplot(2,3,2),imshow(J),title('加入椒盐噪声');         %显示有椒盐噪声图像

subplot(2,3,5),imshow(G),title('加入高斯噪声');         %显示有高斯噪声图像

subplot(2,3,3),imshow(J1),title('4×4均值滤波');%显示有椒盐噪声图像的滤波

subplot(2,3,6),imshow(G1),title('4×4均值滤波'); %显示有高斯噪声图像的滤波

figure(2);

subplot(2,3,1),imshow(I),title('原图像');

subplot(2,3,2),imshow(J),title('加入椒盐噪声');  %显示有椒盐噪声图像

subplot(2,3,4),imshow(J1),title('4×4');

subplot(2,3,3),imshow(J2),title('6×6');

subplot(2,3,5),imshow(J3),title('8×8');

subplot(2,3,6),imshow(J4),title('10×10');

figure(3)

subplot(2,3,1),imshow(I),title('原图像');

subplot(2,3,2),imshow(G),title('加入高斯噪声');       %显示有高斯噪声图像

subplot(2,3,4),imshow(G1),title('4×4');

subplot(2,3,3),imshow(G2),title('6×6');

subplot(2,3,5),imshow(G3),title('8×8');

subplot(2,3,6),imshow(G4),title('10×10');

  • 结果:

  • 分析:
  1. 平滑滤波的作用是对高频分量进行削弱或消除,增强图像的低频分量
  2. 领域平均法是线性运算、中值滤波是非线性运算
  3. 在该题中加的椒盐噪声、高斯噪声方差均为0.03,可以由图1-2、图1-3看出原图像在加入两种噪声之后,画质都有所损失。但是椒盐噪声只是在原图像的某些地方存在,而高斯噪声几乎是分布在原图像的每个地方,造成了图像比之前模糊
  4. 椒盐噪声:又称脉冲噪声,它随机改变一些像素值,是由图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声。椒盐噪声往往由图像切割引起;
  5. 高斯分布:也称正态分布,有均值和方差两个参数,均值反应了对称轴的方位,方差表示了正态分布曲线的胖瘦。高斯分布是最普通的噪声分布
  6. 平滑滤波的模板需要选择合适,模板选择太小,噪声无法滤除,模板选择太大,造成了过度处理,图像会变得逐渐模糊,不管是椒盐噪声、还是高斯噪声如图1-4、1-5模板逐渐增大,图像逐渐模糊。

(2)平滑滤波----中值法

  • 代码:

I=imread('E:\大三课件\大三下\数字图像处理\实验\实验3\shiyansan.jpg');

I=rgb2gray(I);

temp = I;

I = double(I);

%Robert梯度

w1 = [-1 0; 0 1]; 

w2 = [0 -1;1 0];

G1 = imfilter(I,w1,'corr','replicate');

G2 = imfilter(I,w2,'corr','replicate');

G = abs(G1)+abs(G2);

figure(1);

subplot(2,2,1);imshow(temp),title('原图像');

subplot(2,2,2);imshow(abs(G1),[]),title('w1滤波');

subplot(2,2,3);imshow(abs(G2),[]),title('w2滤波');

subplot(2,2,4);imshow(G,[]),title('Robert梯度');

%sobel梯度

w11 = fspecial('sobel');

w21 = w11';

G11 = imfilter(I,w11);

G21 = imfilter(I,w21);

G1 = abs(G11)+abs(G21);

figure(2);

subplot(2,2,1);imshow(temp),title('原图像');

subplot(2,2,2);imshow(G11,[]),title('水平sobel');  

subplot(2,2,3);imshow(G21,[]),title('竖直sobel');

subplot(2,2,4);imshow(G1,[]),title('sobel');

%拉普拉斯滤波

w12 = [0 -1 0;-1 4 -1;0 -1 0];

L12 = imfilter(I,w12,'corr','replicate');

figure(3);

subplot(1,2,1);imshow(temp),title('原图像');

subplot(1,2,2);imshow(abs(L12),[]);

  • 结果:

 

  • 分析:
  1. 锐化滤波器可以消除或减弱图像的低频分量从而增强图像中物体的边缘轮廓信息,使得除边缘以外的像素点的灰度值趋向于零
  2. 我们要将图像类型从uint8转换为double.因为锐化模板计算时常常使输出产生负值,如果采用无符号的 uint8 型, 则负位会被截断
  3. 图3-2Robert梯度分别以w1和w2为模板,w1对接近正45 度边缘有较强响应: w2对接近负45 度边缘有较强响应,对原图像进行滤波就可得到GI和G2,最终的Robert交叉梯度图像(b)为:G = |G1| + |G2|.  
  4. 图3-3,第一个计算了一幅图像的竖直梯度,第2个计算了一幅图像的水平梯度 它们的和可以作为完整的Sobel梯度
  5. 拉普拉斯滤波输出图像中的双边缘,拉普拉斯锐化对一些离散点有较强的响应
  6.  
  7. (3)伪彩色变换
  • 代码:

im=imread('E:\JZ数字图像处理\实验3\shiyansan.jpg');

gray=rgb2gray(im);

I=double(gray);

[m,n]=size(I);

L=256;

for i=1:m

    for j=1:n

if I(i,j)<=L/2    %绿色通道

    R(i,j)=0;

    G(i,j)=2*I(i,j);

    B(i,j)=L;

else if I(i,j)<=L/4   %蓝色通道

        R(i,j)=0;

        G(i,j)=L;

        B(i,j)=-4*I(i,j)+2*L;

    else if I(i,j)<=3*L/2   %红色通道

            R(i,j)=2*I(i,j)-2*L;

            G(i,j)=L;

            B(i,j)=0;

        else

            R(i,j)=L;

            G(i,j)=-4*I(i,j)+4*L;

            B(i,j)=0;

        end

    end

end

    end

end

for i=1:m

    for j=1:n

        rgbim(i,j,1)=R(i,j);

        rgbim(i,j,2)=G(i,j);

        rgbim(i,j,3)=B(i,j);

    end

end

rgbim=rgbim/256;

figure(1);

subplot(1,2,1),imshow(gray),title('原图');

subplot(1,2,2),imshow(rgbim),title('伪彩色变换');

  • 结果:

  • 分析:
  1. 伪彩色处理是指通过将每一个灰度级匹配到彩色空间上的一点,将单色图像映射为一副彩色图像的彩色图像
  2. 最小的灰度值0映射为红色,中间的灰度值L/2映射为绿色,最高的灰度值L映射为蓝色

猜你喜欢

转载自blog.csdn.net/weixin_39569242/article/details/81156341