1、实验一 图像增强 实验一 图像增强1. 实验任务A. 直方图增强处理(1)了解空间域图像增强的各种方法(点处理、掩模处理);(2)通过编写程序掌握采用直方图均衡化进行图像增强的方法;B. 图像平滑(1)使用邻域平均法编写程序实现图像增强,进一步掌握掩模法及其改进(加门限法)消除噪声的原理;C. 图像锐化(1)了解并掌握使用微分算子进行图像边缘检测的基本原理;(2)编写程序使用Laplacian算子(二阶导数算子)实现图像锐化,进一步理解图像锐化的实质;(3)掌握使用不同梯度算子(一阶导数算子)进行图像边缘检测的原理、方法,根据实验结果分析各种算子的工作效果;D. 总结实验过程(实验报告,左侧装
2、订):方案、编程、调试、结果、分析、结论。2. 实验环境Windws2000/XP3. 开发工具MATLAB 7.x4. 实验内容及步骤A. 直方图增强处理对如图1.1所示的两幅128128的数字图像fing_128.bmp和cell_128.bmp进行如下处理:(1)对原图像进行直方图均衡化处理,同屏显示处理前后图像及其直方图,比较异同,并回答为什么数字图像均衡化后其直方图并非完全均匀分布。B. 图像平滑(1)对图1.1所示的两幅128128、256级灰度的数字图像fing_128.bmp和cell_128.bmp加入点噪声,用4-邻域平均法平滑加噪声图像(图像四周边界不处理,下同),同屏显
3、示原图像、加噪声图像和处理后的图像。 不加门限; 加门限,(其中)C. 图像锐化对256256大小、256级灰度的数字图像lena.bmp(如图1.2所示)进行如下处理:(1)对原图像进行锐化处理,显示处理前、后图像:用Laplacian算子进行锐化,分和两种情况,各按如下不同情况给出处理结果,并回答提出的问题:问题:和、之间有何关系?代表图像中的哪些信息?由此得出图像锐化的实质是什么?(2)分别利用Roberts、Prewitt和Sobel边缘检测算子,对原图像进行边缘检测,显示处理前、后图像。1.实验目的A. 直方图增强处理(1)了解空间域图像增强的各种方法(点处理、掩模处理);(2)通过
4、编写程序掌握采用直方图均衡化进行图像增强的方法;B. 图像平滑(1)使用邻域平均法编写程序实现图像增强,进一步掌握掩模法及其改进(加门限法)消除噪声的原理;C. 图像锐化(1)了解并掌握使用微分算子进行图像边缘检测的基本原理;(2)编写程序使用Laplacian算子(二阶导数算子)实现图像锐化,进一步理解图像锐化的实质;(3)掌握使用不同梯度算子(一阶导数算子)进行图像边缘检测的原理、方法,根据实验结果分析各种算子的工作效果;2.实验环境(软件条件)Windws2000/XPMATLAB 7.x3.实验方法在MATLAB 7.x中按要求编写附件中程序,分析程序功能;输入执行各命令行,认真观察命
5、令执行的结果。熟悉并掌握程序中所使用函数的调用方法,改变有关参数,观察并分析试验结果。4.实验分析在MatLab中输入各程序代码后运行程序,得到输出结果如图所示:A-1A-2B-1-1B-1-2B-2-1略B-2-2略C-1C-2C-3C-45.实验结论A实验处理结果知:由A实验有关图像对比可以看出,经过均衡化的图像比原图像更富有层次感,对比度更加明显,图像效果也显得更为好一些。从原图像的灰度直方图和变换后的灰度直方图可以看出,均衡化函数拉伸了原图像灰度值较为密集的部分(大约在75-150归一化为0.3-0.6),从而使图像的灰度范围得以扩大,灰度值更加均匀而非原图像的集中分布,所以原图像却是
6、灰蒙蒙的,变换后的图像显得非常清亮B实验处理结果知:由噪声图与滤波后的图像对比可看出,邻域平均法对抑制噪声有明显的效果,但随着邻域的加大,就是随着模板的加大,图像的模糊程度也愈加严重。C实验处理结果知:对原图像采用不同算子对原图像进行锐化,由图可以看出,各个算子锐化滤波后的图像虽然亮度不一样,但是特征并没有多少差异,而且算子本身有滤波作用,可以增强图像的边缘轮廓,具体的边缘轮廓细节较原图像效果要好很多。附件A-1程序 clear all; I=imread(H:GJcell_128.bmp); % 读入原图像subplot(2,2,1)imshow(I); %显示原图像title(原图像);
7、%给原图像加标题名F=rgb2gray(I); %转换成灰度图subplot(2,2,2)imhist(F); %显示原图像直方图title(原图像直方图) ; %给原图像直方图加标题名J=histeq(F); %对原图像进行直方图均衡化处理subplot(2,2,3);imshow(J); %显示直方图均衡化后的图像title(均衡后的图像) ; %给直方图均衡化后的图像加标题名subplot(2,2,4) ;%作一幅子图 作为并排两幅图的第1幅图imhist(J) ; %将均衡化后图像的直方图显示为64级灰度title(均衡后的直方图);A-2程序clear all; I=imread(H
8、:GJfing_128.bmp); % 读入原图像subplot(2,2,1)imshow(I); %显示原图像title(原图像); %给原图像加标题名F=rgb2gray(I); %转换成灰度图subplot(2,2,2)imhist(F); %显示原图像直方图title(原图像直方图) ; %给原图像直方图加标题名J=histeq(F); %对原图像进行直方图均衡化处理subplot(2,2,3);imshow(J); %显示直方图均衡化后的图像title(均衡后的图像) ; %给直方图均衡化后的图像加标题名subplot(2,2,4) ;%作一幅子图 作为并排两幅图的第1幅图imhis
9、t(J) ; %将均衡化后图像的直方图显示为64级灰度title(均衡后的直方图);B-1-1(不加门限)程序F=imread(H:GJfing_128.bmp); %读取图像I=rgb2gray(F);I1=imnoise(I,speckle); %加乘性噪声H1=ones(4,4)/16; %44领域模板J=imfilter(I,H1); %领域平均subplot(131),imshow(I); %显示图像Ititle(原图像);subplot(132),imshow(I1);title(加噪声后图像);subplot(133),imshow(J);title(平滑后图像);B-1-2(不
10、加门限)程序F=imread(H:GJcell_128.bmp); %读取图像I=rgb2gray(F);I1=imnoise(I,speckle); %加乘性噪声H1=ones(4,4)/16; %44领域模板J=imfilter(I,H1); %领域平均subplot(131),imshow(I); %显示图像Ititle(原图像);subplot(132),imshow(I1);title(加噪声后图像);subplot(133),imshow(J);title(平滑后图像);B-2-1(加门限)程序F=imread(H:GJfing_128.bmp); %读取图像I=rgb2gray(
11、F);I1=imnoise(I,speckle); %加乘性噪声H1=ones(4,4)/16; %44领域模板J=imfilter(I,H1); %领域平均subplot(221),imshow(I); %显示图像Ititle(原图像);subplot(222),imshow(I1);title(加噪声后图像);subplot(223),imshow(J);title(平滑后图像);%加门限后滤波T = 2*sum(I1 (:)/1282;im_T = zeros(128,128);for i = 1:128 for j = 1:128 if abs(I1(i,j) - J(i,j)T im
12、_T(i,j) = J(i,j); else im_T(i,j) = I1(i,j); end endendcolormap(gray);subplot(224);imshow(im_T);title(加门限后);B-2-2(加门限)程序F=imread(H:GJcell_128.bmp); %读取图像I=rgb2gray(F);I1=imnoise(I,speckle); %加乘性噪声H1=ones(4,4)/16; %44领域模板J=imfilter(I,H1); %领域平均subplot(221),imshow(I); %显示图像Ititle(原图像);subplot(222),imsh
13、ow(I1);title(加噪声后图像);subplot(223),imshow(J);title(平滑后图像);%加门限后滤波T = 2*sum(I1 (:)/1282;im_T = zeros(128,128);for i = 1:128 for j = 1:128 if abs(I1(i,j) - J(i,j)T im_T(i,j) = J(i,j); else im_T(i,j) = I1(i,j); end endendcolormap(gray);subplot(224);imshow(im_T);title(加门限后);C-程序%打开一幅图像,利用Roberts梯度法、Prewi
14、tt算子、Sobel算子和拉普拉斯算子(不同条件下)进行锐化clear all; I=imread(H:GJlena_256.bmp); % 读入原图像%Roberts梯度法锐化subplot(1,2,1);imshow(I);title(原始图像);J=double(I);IX,IY=gradient(J); %计算梯度A=sqrt(IX.*IX+IY.*IY);subplot(1,2,2);imshow(A,);title(Roberts梯度法锐化图像);%Prewitt算子锐化figure();subplot(1,2,1);imshow(I);title(原始图像);S=imfilter
15、(I,fspecial(Prewitt);subplot(1,2,2);imshow(S);title(Prewitt算子锐化图像);%Sobel算子锐化figure();subplot(1,2,1);imshow(I);title(原始图像);S=imfilter(I,fspecial(sobel);subplot(1,2,2);imshow(S);title(Sobel算子锐化图像);%laplacian算子锐化=1figure();subplot(2,2,1);imshow(I);title(原始图像);L=fspecial(laplacian);L1=0 -1 0;-1 5 -1;0 -1 0;L2=0 -2 0;-2 9 -2;0 -2 0;LP=imfilter(I,L,replicate);LP1=imfilter(I,L1,replicate);% =1时的拉普拉斯算子LP2=imfilter(I,L2,replicate);% =2时的拉普拉斯算子subplot(2,2,2);imshow(LP);title(锐化后的图像);subplot(2,2,3);imshow(LP1);title(Laplacian算子=1锐化图像);subplot(2,2,4);imshow(LP2);title(Laplacian算子=2锐化图像);