实验三 图像增强

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三 图像增强—直方图变换

一、 实验目的

1.掌握灰度直方图的概念及其计算方法;

2.熟练掌握直力图均衡化和直方图规定化的计算过程;

3.熟练掌握空域滤波中常用的平滑和锐化滤波器;

4.利用MATLAB 程序进行图像增强。

二、 实验内容

1打开计算机,启动MATLAB 程序;输入待处理的图像文件;

2调入数字图像,并进行图像均衡化处理;

3显示原图像的直方图和经过均衡化处理过的图像直方图。

4.利用imnoise 命令在图像上加入高斯(gaussian) 噪声

5.利用预定义函数fspecial 命令产生平均(average)滤波器

111191111---⎡⎤⎢⎥--⎢⎥⎢⎥---⎣

⎦ 6.分别采用3x3和5x5的模板,分别用平均滤波器以及中值滤波器,对加入噪声的图像进行处理并观察不同噪声水平下,上述滤波器处理的结果;

7.选择不同大小的模板,对加入某一固定噪声水平噪声的图像进行处理,观察上述滤波器处理的结果。

8.利用imnoise 命令在图像上加入椒盐噪声(salt & pepper)

9.重复c)~ e )的步骤

10输出全部结果并进行讨论。

11.记录和整理实验报告

三、 思考题

1. 直方图是什么概念?它反映了图像的什么信息?

答:直方图是灰度级数的函数,反映了图像中具有该灰度级数的像素的个数。

2.直方图均衡化是什么意思?它的主要用途是什么?均衡化后的图像有什么特点?

3. 简述高斯噪声和椒盐噪声的特点。

4. 结合实验内容,定性评价平均滤波器/中值滤波器对高斯噪声和椒盐噪声的去噪效果?

5. 结合实验内容,定性评价滤波窗口对去噪效果的影响?

四、实验结论

源程序代码:

clear all;

clc;

%输入一幅图像,进行图像输出图像直方图

p1=imread('1.png');%读入原始灰色图像

p=rgb2gray(p1);

imshow(p);title('原始图像');

%自己编写函数绘制直方图

[m,n]=size(p);%测量图像大小

h1=zeros(1,256);%总共有0~255,共256个灰度级

h2=zeros(1,256);%总共有0~255,共256个灰度级

for k=0:255

h1(k+1)=length(find(p==k))/(m*n);%计算每级灰度出现的概率,将其放入向量

h2(k+1)=length(find(p==k));%计算每级灰度出现的概率,将其放入向量

end

[count,x]=imhist(p);

%在一幅图像中输出结果

figure

axis([-100,300,0,3600]);

subplot(141);bar(0:255,h1,'g');title('自己编的代码绘制直方图(频率)');

subplot(142);bar(0:255,h2,'b');title('自己编的代码绘制直方图(频数)');

subplot(143);imhist(p);title('利用matlab的代码绘制原图像的直方图');

subplot(144);stem(x,count);title('利用matlab的代码绘制原图像的直方图');

运行结果图如下:

实验结论:利用自己编的函数分别绘制出图像灰度级的频数和频率,然后利用matlab已经有的函数imhist绘制原图像的直方图,但是其中有问题,为什么在使用imhist函数的时候,明显纵坐标的最大值只有1400,达不到实际数值3511.

源程序代码:

%% 图像工程的第三章作业2016.09.26

clear all;

clc;

%输入一幅图像,进行图像输出图像直方图

p1=imread('1.png');%读入原始灰色图像

p=rgb2gray(p1);

%自己编写函数绘制直方图

[m,n]=size(p);%测量图像大小

h=zeros(1,256);%总共有0~255,共256个灰度级

for k=0:255

h(k+1)=length(find(p==k))/(m*n);%计算每级灰度出现的概率,将其放入向量

end

S1=zeros(1,256);

S1=h(1)

for i=2:256

S1(i)=h(i)+S1(i-1);%计算Sk

end

S2=round((S1*256)+0.5);%将Sk归到相近级的灰度

for i=1:256

S3(i)=sum(h(find(S2==i)));%计算现有每个灰度级出现的概率

end

P=p;

for i=0:255

P(find(p==i))=S2(i+1);

end

q=histeq(p);

figure

subplot(131);imshow(p);title('原始图像');

subplot(132);imshow(P);title('代码绘制的均衡化后的图像');

subplot(133);histeq(p);title('matlab绘制的均衡化后的图像');

figure

subplot(121);imhist(q);title('已有函数绘制均衡化后的直方图')%显示均衡化后的直方图subplot(122);bar(0:255,S3,'b');title('自己编写的代码绘制的均衡化后的直方图')%显示均衡化后的直方图

xlabel('灰度值')

ylabel('出现概率')

相关文档
最新文档