资源描述:
《11光信数字图像处理图像的边缘检测》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验三图像的边缘检测一、实验目的1.进一步理解边沿检测的基本原理。2.掌握对图像边沿检测的基本方法。3.学习利用Matlab图像工具箱对图像进行边沿检测。二、实验原理边缘检测在图像处理中可分为空域下的操作和频域下的操作。本实验以空域下的操作为主要实验内容,其他方法同学们可以在课后自行实验。空域下的图像边缘检测主要应用的是领域运算。三、实验要求对边缘检测的要求:使用Matlab图像处理工具箱中的不同方法对下图的边缘进行提取;注意观察不同操作对垂直方向、水平方向、斜方向的提取效果有何区别;注意观察提
2、取后的边界是否连续,若不连续可采用什么方法使其连续。四、实验步骤1.打开计算机,启动MATLAB程序;2.调入实验指导书所示的数字图像,利用MATLAB图像工具箱中已有函数进行编程以实现图像的边缘检测;3.显示原图和处理过的图像。4.记录和整理实验报告五、实验仪器1.计算机;2.MATLAB程序;3.记录用的笔、纸。六、实验报告要求1.对所使用的图像边沿检测方法的原理进行说明。2.给出程序清单和注释。3.对不同处理方法进行说明、比较。********************自己的方法******
3、*****************QQ=imread('Image1.bmp');blood=rgb2gray(QQ);[x,y]=size(blood);%求出图象大小b=double(blood);N=sqrt(100)*randn(x,y);%生成方差为10的白噪声I=b+N;%噪声干扰图象fori=1:x%实际图象的灰度为0~255forj=1:yif(I(i,j)>255)I(i,j)=255;endif(I(i,j)<0)I(i,j)=0;endendendz0=max(max(I)
4、);%求出图象中最大的灰度z1=min(min(I));%最小的灰度T=(z0+z1)/2;TT=0;S0=0;n0=0;S1=0;n1=0;allow=0.5;%新旧阈值的允许接近程度d=abs(T-TT);count=0;%记录几次循环while(d>=allow)%迭代最佳阈值分割算法count=count+1;fori=1:xforj=1:yif(I(i,j)>=T)S0=S0+I(i,j);n0=n0+1;endif(I(i,j)5、ndendT0=S0/n0;T1=S1/n1;TT=(T0+T1)/2;d=abs(T-TT);T=TT;endSeg=zeros(x,y);fori=1:xforj=1:yif(I(i,j)>=T)Seg(i,j)=1;%阈值分割的图象endendendSI=1-Seg;%阈值分割后的图象求反,便于用腐蚀算法求边缘se1=strel('square',3);%定义腐蚀算法的结构SI1=imerode(SI,se1);%腐蚀算法BW=SI-SI1;%边缘检测%=====传统的边缘检测方法====
6、==%I=uint8(I);BW1=edge(I,'sobel',0.11);BW2=edge(I,'log',0.015);%===========图象显示==========%figure(1);imshow(I);title('Original')%显示阈值分割的图象figure(2);imshow(BW2);title('Soble')%显示新算法的边缘图象figure(3)imshow(BW1);title('Gauss-Laplace')figure(4)imshow(BW);tit
7、le('Newalgorithm')***********另一种处理的方法************************************依据原理下面为常用滤波算子的列表说明typep模板‘gaussian’(高斯低通滤波器)缺省值为[33]0.01130.08380.01130.08380.61930.08380.01130.08380.0113‘Sobel’(边缘增强算子,水平方向和垂直方向)12110-100020-2-1-2-110-1‘Prewitt’(边缘增强算子,水平方向和
8、垂直方向)11110-100010-1-1-1-110-1‘average’(均值滤波器)缺省值为[33]0.11110.11110.11110.11110.11110.11110.11110.11110.1111I=imread('Image1.bmp')A=rgb2gray(I)h1=[1,1,1;0,0,0;-1,-1,-1];h2=[0,1,1;-1,0,1;-1,-1,0];h3=[10-1;10-1;10-1]h4=[0,-1,-1;1,0,-1;1,1,0]j1=imfilter(