整理数字图像采集与处理边缘检测法Word格式文档下载.docx
《整理数字图像采集与处理边缘检测法Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《整理数字图像采集与处理边缘检测法Word格式文档下载.docx(8页珍藏版)》请在冰豆网上搜索。
本文通过对各种边缘检测方法的对比研究,着重选取几种具有代表性的边缘检测算法进行详细的分析,并用Matlab软件实现该算法,通过对这些算法的分析比较,给出了这些算法的适用领域和适用范围,为人们使用这些算法提供实验依据。
1.1基于一阶微分的边缘检测算法
Roberts算子:
由Roberts提出的算子是一种利用局部差分算子寻找边缘的算子,对于边界陡峭且噪比较小的图像检测效果比较好,它在2×
2邻域上计算对角导数,
G[i,j]又称为Roberts交叉算子。
在实际应用中,为简化运算,用梯度函数的Roberts绝对值来近似:
用卷积模板,上式变成:
其中Gx和Gy由下面图3所示的模板计算:
图3Robert边缘检测算子的模板
Roberts算子是该点连续梯度的近似值,而不是所预期的点处的近似值。
由上面两个卷积算子对图像运算后,代入(1-3)式,可求得图像的梯度幅度值G[i,j],然后选取适当的门限TH,作如下判断:
G[i,j]>
TH,[i,j]为阶跃状边缘点,{G[i,j]}为一个二值图像,也就是图像的边缘。
由于利用局部差分检测比较陡峭的边缘,但对于噪声比较敏感,经常会出现孤立点,于是人们又提出了Prewitt算子。
Prewitt算子:
为在检测边缘的同时减少噪声的影响,Prewitt算子从加大边缘检测算子出发。
由2×
2扩大到3×
3来计算差分算子,所以其卷积模板为图4所示:
图4Prewitt边缘检测算子的模板
在图像中的每个像素位置都用这2个模板做卷积,Prewitt算子将方向差分运算与局部平均结合起来,表达式如下:
根据(1-4)和(1-5)式可以计算Prewitt梯度,选取适当的阈值T,对梯度图像二值化,得到一幅边缘二值图像。
采用Prewitt算子不仅能检测边缘点,而且还能抵制噪声的影响[5]。
Kirsch算子:
1971年,R.Kirsch提出了一种能检测边缘方向的Kirsch算子新方法:
它使用了8个模板来确定梯度幅度值和梯度的方向。
Kirsch算子是用一组模板对图像中同一像素求卷积,选取其中最大的值作为边缘强度,而将与之对应的方向作为边缘方向[6]。
常用的八方向Kirsch模板各方向间的夹角为45度,模板如图5所示:
图5Kirsch边缘检测算子的模板
上述算子都是计算一阶导数的边缘检测器。
其基本思想都是:
如果所求的一阶导数高于某一阈值,则确定该点为边缘点。
但是这样做会导致检测的边缘点太多。
总的来说,造成这些算子不能准确判定边缘的存在及正确位置的原因在于:
(1)实际的边缘灰度与理想的边缘灰度值间存在差异,这类算子可能检测出多个边缘。
(2)边缘存在的尺度范围各不相同,这类算子固定的大小不利于检测出不同尺度上的所有边缘。
(3)对噪声比较敏感为了解决这一问题,发展并产生了平滑滤波边缘检测方法,也就是边缘检测中理论最成熟的线性滤波方法,也称线性边缘检测算子。
在线性滤波边缘检测方法中,最具代表性的是Marr-Hildreth提出的LoG(LaplacianofGaussian)算法、Canny最优算子的边缘检测方法。
Roberts算子程序:
clc
clearall
closeall
A=imread('
cameraman.tif'
);
%读入图像
imshow(A);
title('
原图'
x_mask=[10;
0-1];
%建立X方向的模板
y_mask=rot90(x_mask);
%建立Y方向的模板
I=im2double(A);
%将图像数据转化为双精度
dx=imfilter(I,x_mask);
%计算X方向的梯度分量
dy=imfilter(I,y_mask);
%计算Y方向的梯度分量
grad=sqrt(dx.*dx+dy.*dy);
%计算梯度
grad=mat2gray(grad);
%将梯度矩阵转换为灰度图像
level=graythresh(grad);
%计算灰度阈值
BW=im2bw(grad,level);
%用阈值分割梯度图像
figure,imshow(BW);
%显示分割后的图像即边缘图像
Roberts'
)
Prewitt算子程序:
y_mask=[-1-1-1;
000;
111];
x_mask=y_mask'
;
Prewitt'
)
Kirsch算子程序
mask1=[-3,-3,-3;
-3,0,5;
-3,5,5];
%建立方向模板
mask2=[-3,-3,5;
-3,-3,5];
mask3=[-3,5,5;
-3,-3,-3];
mask4=[-3,-3,-3;
-3,0,-3;
5,5,5];
mask5=[5,5,5;
mask6=[-3,-3,-3;
5,0,-3;
5,5,-3];
mask7=[5,-3,-3;
5,-3,-3];
mask8=[5,5,-3;
%将数据图像转化为双精度
d1=imfilter(I,mask1);
%计算8个领域的灰度变化
d2=imfilter(I,mask2);
d3=imfilter(I,mask3);
d4=imfilter(I,mask4);
d5=imfilter(I,mask5);
d6=imfilter(I,mask6);
d7=imfilter(I,mask7);
d8=imfilter(I,mask8);
dd=max(abs(d1),abs(d2));
%取差值变化最大的元素组成灰度变化矩阵
dd=max(dd,abs(d3));
dd=max(dd,abs(d4));
dd=max(dd,abs(d5));
4.环境保护地方性法规和地方性规章dd=max(dd,abs(d6));
意愿调查评估法(简称CV法)是指通过调查等方法,让消费者直接表述出他们对环境物品或服务的支付意愿(或接受赔偿意愿),或者对其价值进行判断。
在很多情形下,它是唯一可用的方法。
如用于评价环境资源的选择价值和存在价值。
dd=max(dd,abs(d7));
2.环境价值的度量——最大支付意愿dd=max(dd,abs(d8));
grad=mat2gray(dd);
%将灰度变化矩阵转化为灰度图像
根据工程、系统生命周期和评价的目的,安全评价分为三类:
安全预评价、安全验收评价、安全现状评价。
(3)环境影响技术评估。
%显示分割后的图像,即边缘图像
3.建设项目环境影响评价文件的审查要求title('
Kirsch'
以cameraman图片为例,分别用Roberts、Prewitt和Kirsch三种算法,在无噪声(图1)和有高斯白噪声(图2)的环境下,分别给检测结果。
图1对未加噪声图片的检测结果
图2对加入高斯白噪声图片的检测结果
1.1.1
1.1.2对于不同的评价单元,可根据评价的需要和单元特征选择不同的评价方法。
实验结果分析
1.环境影响评价工作等级的划分通过图1和图2知,在图像没有噪声的情况下,Roberts算子、Prewitt算子、Kirsch算子,都能够比较准确的检测出图像的边缘。
加入高斯白噪声后,三种边缘检测算子的边缘检测效果都多少受到噪声的干扰,检测出大量的噪声点和伪边缘,甚至无法检测出边缘。
Roberts算子受噪声的影响最大,Kirsch算子、Prewitt算子受噪声影响比Roberts算子小。
1.建设项目环境影响报告书的内容由于各种原因,图像总是受到随机噪声的干扰,可以说噪声无处不在。
经典的边缘检测方法由于引入了各种形式的微分运算,从而必然引起对噪声的极度敏感,边缘检测的结果常常是把噪声当作边缘点检测出来,而真正的边缘也由于受到噪声干扰而没有检测出来。
对于有噪声图像来说,一种好的边缘检测方法应该具有良好的噪声抑制能力,同时又有完备的边缘保持特性。
基于一阶微分的边缘检测算子具有实现简单、运算速度快等特点,但其检测受噪声的影响很大,检测结果不可靠,不能准确判定边缘的存在及边缘的准确位置,造成这种情况的原因:
(1)实际边缘灰度与理想边缘灰度值间存在差异,这类算子可能检测出多个边缘;
(2)边缘存在的尺度范围各不相同,这类算子固定的大小不利于检测出不同尺度上的所有边缘;
(3)对噪声都比较敏感。
2.辨识与分析危险、有害因素