文档详情

光信数字图像处理图像的边缘检测.doc

发布:2018-01-21约3.37千字共7页下载文档
文本预览下载声明
实验三 图像的边缘检测 一、实验目的 1.进一步理解边沿检测的基本原理。 2.掌握对图像边沿检测的基本方法。 3.学习利用Matlab图像工具箱对图像进行边沿检测。 二、实验原理 边缘检测在图像处理中可分为空域下的操作和频域下的操作。本实验以空域下的操作为主要实验内容,其他方法同学们可以在课后自行实验。空域下的图像边缘检测主要应用的是领域运算。 三、实验要求 对边缘检测的要求:使用Matlab图像处理工具箱中的不同方法对下图的边缘进行提取;注意观察不同操作对垂直方向、水平方向、斜方向的提取效果有何区别;注意观察提取后的边界是否连续,若不连续可采用什么方法使其连续。 四、实验步骤 1.打开计算机,启动MATLAB程序; 2.调入实验指导书所示的数字图像,利用MATLAB图像工具箱中已有函数进行编程以实现图像的边缘检测; 3.显示原图和处理过的图像。 4.记录和整理实验报告 五、实验仪器 1.计算机; 2.MATLAB程序; 3.记录用的笔、纸。 六、实验报告要求 1.对所使用的图像边沿检测方法的原理进行说明。 2.给出程序清单和注释。 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; % 噪声干扰图象 for i=1:x % 实际图象的灰度为0~255 for j=1:y if (I(i,j)255) I(i,j)=255; end if (I(i,j)0) I(i,j)=0; end end end z0=max(max(I)); % 求出图象中最大的灰度 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; for i=1:x for j=1:y if (I(i,j)=T) S0=S0+I(i,j); n0=n0+1; end if (I(i,j)T) S1=S1+I(i,j); n1=n1+1; end end end T0=S0/n0; T1=S1/n1; TT=(T0+T1)/2; d=abs(T-TT); T=TT; end Seg=zeros(x,y); for i=1:x for j=1:y if(I(i,j)=T) Seg(i,j)=1; % 阈值分割的图象 end end end SI=1-Seg; % 阈值分割后的图象求反,便于用腐蚀算法求边缘 se1=strel(square,3); % 定义腐蚀算法的结构 SI1=imerode(SI,se1); % 腐蚀算法 BW=SI-SI1; % 边缘检测 %=====传统的边缘检测方法======% I=uint8(I); BW1=edge(I,sob
显示全部
相似文档