经典图像边缘检测(综合法思想)Marr算子
- 格式:doc
- 大小:11.50 KB
- 文档页数:1
边缘检测算子图像配准的方法7.4.1 基于特征的图像配准基于特征的图像配准首先提取图像信息的特征,然后以这些特征为模型进行配准。
特征提取的结果是一含有特征的表和对图像的描述,每个特征由一组属性表示,对属性的进一步描述包括边缘的定向和弧度、区域的大小等。
局部特征之间存在着相互关系,如几何关系、辐射度量关系、拓扑关系等。
可以用这些局部特征之间的关系描述全局特征。
通常基于局部特征配准大多都是基于点、线或边缘的,而全局特征的配准则是利用局部特征之间的关系进行配准的方法。
由于图像的特征点比图像的像素点要少很多,因此大大减少了配准过程的计算量,但特征提取方法的计算代价通常较大,不便于实时应用。
特征点的配准度量值对位置的变化比较敏感,可以大大提高配准的精确程度。
对于纹理较少的图像区域提取的特征的密度通常比较稀少,局部特征的提取就比较困难。
特征点的提取过程可以减少噪声的影响,对灰度变化、图像形变和遮挡等都有较好的适应能力。
因此,在图像配准领域得到了广泛应用。
基于特征的图像配准方法有两个重要环节:特征提取和特征配准。
7.4.2 基于互信息的图像配准医学图像配准技术从基于特征的配准方法发展到基于统计的配准方法有其突破性的意义。
与基于特征的配准方法相比,基于统计的配准方法的突出优点为鲁棒性好、配准精度高、人工干预少。
基于统计的配准方法通常是指最大互信息的图像配准方法。
基于互信息的图像配准是用两幅图像的联合概率分布与完全独立时的概率分布的广义距离来估计互信息,并作为多模态医学图像配准的测度。
当两幅基于共同的解剖结构的图像达到最佳配准时,它们的对应像素的灰度互信息应为最大。
由于基于互信息的配准对噪声比较敏感,首先,通过滤波和分割等方法对图像进行预处理。
然后进行采样、变换、插值、优化从而达到配准的目的。
基于互信息的配准技术属于基于像素相似性的方法。
它基于图像中所有的像素进行配准,基于互信息的图像配准引入了信息论中的概念,如熵、边缘熵、联合熵和互信息等,可使配准精度达到亚像素级的高精度。
图像处理中的边缘检测算法应用方法边缘检测是图像处理中一个关键的步骤,旨在识别图像中不同区域之间的边缘和轮廓。
边缘检测算法有多种,每种算法都有其独特的应用方法和适用场景。
本文将介绍常用的边缘检测算法以及它们在图像处理中的应用方法。
1. Robert算子Robert算子是一种最简单、最常见的边缘检测算法之一。
它通过在图像中滑动一个小型的2x2滤波器,计算出两个方向上的边缘梯度。
这个算子鲁棒性较弱,容易受到噪声的干扰,但是计算速度快,适用于实时图像处理和边缘检测。
在应用Robert算子进行边缘检测时,首先需要将图像转换为灰度图像,然后对每个像素点应用Robert算子模板。
在计算出梯度后,可以设置一个阈值来筛选出边缘区域。
通常情况下,边缘区域的灰度值变化较大,可以通过设定阈值来滤除那些灰度值变化较小的区域,从而得到较为准确的边缘检测结果。
2. Sobel算子Sobel算子是一种常用的边缘检测算法,也是一种基于梯度的算法。
它将图像分解为水平和垂直两个方向上的梯度,并将两个梯度组合起来形成最终的边缘结果。
Sobel算子相对于Robert算子而言,提供了更好的边缘检测效果和更强的鲁棒性。
使用Sobel算子进行边缘检测时,与Robert算子相似,需要将图像转换为灰度图像。
然后,使用水平和垂直两个方向上的Sobel算子模板对图像进行卷积运算,得到每个像素点的水平和垂直梯度。
将两个梯度合并后,可以通过设定阈值来筛选出边缘区域。
3. Canny算子Canny算子是一种广泛应用的边缘检测算法,被认为是一种较为优秀的边缘检测方法。
它基于多级阈值和非极大值抑制技术,能够检测出图像中的细微边缘,并且对噪声具有较好的抑制能力。
使用Canny算子进行边缘检测的过程较为复杂。
首先,同样需要将图像转换为灰度图像,并使用高斯滤波对图像进行平滑处理,以减少噪声干扰。
然后,计算图像的梯度幅值和方向,并进行非极大值抑制,剔除非边缘区域。
最后,利用多级阈值和连接操作,筛选出梯度幅值高于设定阈值的像素,形成最终的边缘检测结果。
绪论单元测试1.数字图像处理泛指通过计算机对数字图像进行处理,涉及图像增强、图像复原、图像分割等内容。
()A:错B:对答案:B2.数字图像处理的优点包括()。
A:处理效果可控B:数据量小C:容易存储D:可重现性好答案:ACD3.数字图像处理系统包含()。
A:图像处理和分析B:图像存储C:图像传输D:图像输入E:图像输出答案:ABCDE4.人眼感受到的明亮程度,称作亮度,是一种主观感受。
()A:对B:错答案:A5.数字图像处理的研究内容中,()的目的是根据二维平面图像数据构造出物体的三维图像。
A:图像重建B:图像分割C:图像增强D:图像复原答案:A第一章测试1.一幅256X256的图像,若灰度级数为16,则存储它所需的比特数是( )。
A:1MB:512KC:2MD:256K答案:D2.图像中虚假轮廓的出现就其本质而言是由于( )。
A:图像的空间分辨率过高造成B:图像的空间分辨率不够高造成C:图像的灰度级数不够多造成的D:图像的灰度级数过多造成的答案:C3.m邻接可以消除由8邻接引起的像素间通路的二义性。
()A:对B:错答案:A4.常用的插值算法有()。
A:均匀插值B:最近邻插值C:双线性插值D:双三次插值答案:BCD5.对单幅图像进行处理,仅改变像素空间位置的运算是()。
A:几何运算B:算术运算C:逻辑运算D:集合运算答案:A第二章测试1.下列算法中属于点运算的是()。
A:傅里叶变换B:梯度锐化C:二值化D:直方图均衡答案:CD2.直方图均衡的目的是将图像的直方图变换为均匀分布的直方图。
()A:错B:对答案:B3.一幅图像的直方图均值较小而方差较大,意味着()。
A:图像较暗,对比度较大B:图像较暗,对比度较小C:图像较亮,对比度较小D:图像较亮,对比度较大答案:A4.下列算法中属于平滑运算的是()。
A:Laplacian增强B:中值滤波C:直方图均衡D:梯度锐化答案:B5.()可以较好地去除椒盐噪声。
图像处理中的边缘检测方法与性能评估边缘检测是图像处理和计算机视觉领域中的一项重要任务。
它主要用于提取图像中物体和背景之间的边界信息,便于后续的图像分割、目标识别和物体测量等应用。
在图像处理领域,边缘被定义为亮度、颜色或纹理等属性上的不连续性。
为了实现准确且可靠的边缘检测,许多不同的方法和算法被提出并广泛应用。
在本文中,我们将介绍几种常见的边缘检测方法,并对它们的性能进行评估。
1. Roberts 算子Roberts 算子是一种基于差分的边缘检测算法,它通过对图像进行水平和垂直方向的差分运算来检测边缘。
这种算法简单且易于实现,但对噪声比较敏感。
2. Sobel 算子Sobel 算子是一种常用的基于梯度的边缘检测算法。
它通过在图像上进行卷积运算,计算像素点的梯度幅值和方向,从而检测边缘。
Sobel 算子可以有效地消除噪声,并在边缘方向上提供更好的响应。
3. Canny 边缘检测Canny 边缘检测是一种经典的边缘检测算法。
它包括多个步骤,包括高斯滤波、计算梯度幅值和方向、非极大值抑制和双阈值处理。
Canny 边缘检测算法具有较高的准确性和鲁棒性,广泛应用于实际图像处理中。
除了以上提到的方法外,还存在许多其他的边缘检测算法,如拉普拉斯算子、积分图像算法等。
这些算法各有优缺点,选择合适的算法需要根据具体应用情况和要求来确定。
对于边缘检测方法的性能评估,通常使用以下几个指标来衡量:1. 精确度精确度是评估边缘检测算法结果与真实边缘之间的差异的指标。
可以通过计算检测结果与真实边缘的重叠率或者平均绝对误差来评估。
2. 召回率召回率是评估边缘检测算法是否能够正确检测到真实边缘的指标。
可以通过计算检测结果中的边缘与真实边缘的重叠率或者正确检测到的边缘像素数量与真实边缘像素数量的比值来评估。
3. 噪声鲁棒性噪声鲁棒性是评估边缘检测算法对图像噪声的抗干扰能力的指标。
可以通过在含有不同噪声水平的图像上进行测试,并比较检测到的边缘结果与真实边缘的差异来评估。
各类边缘检测算子的比较摘要:边缘检测是图像处理和计算机视觉中的基本问题,其目的标识数字图像中亮度变化明显的点。
图像边缘检测大幅度地减少了数据量,并且剔除了可以认为不相关的信息,保留了图像重要的结构属性。
有许多方法用于边缘检测,它们的绝大部分可以划分为两类:基于搜索和基于零交叉。
基于搜索的边缘检测算子有:Roberts算子,Prewitt算子,Sobel算子,Canny算子,罗盘算子。
基于零交叉的边缘检测算子有Marr-Hildreth边缘检测器。
本篇论文分析了各种检测算子的特点,并对各种边缘检测算法的检测结果进行了比较。
关键词:边缘检测;图像处理;算子0 引言图像边缘是图像的重要特征,是计算机视觉、模式识别等的基础,因此边缘检测是图像处理中一个重要的环节。
然而,图像边缘受很多因素的影响。
这些包括(i)深度上不连续、(ii)表面方向不连续、(iii)物质属性变化和(iv)场景照明变化。
目前,常用的边缘检测算法没有哪一种具有绝对的优越性。
因此,对各种边缘检测算子的性能进行比较分析,根据图像边缘的特征选择比较合理的边缘检测显得尤为重要。
1 基于搜索的边缘检测算子基于搜索的边缘检测方法首先计算边缘强度,通常用一阶导数表示,例如梯度模;然后,用计算估计边缘的局部方向,通常采用梯度的方向,并利用此方向找到局部梯度模的最大值。
1.1 Roberts算子Roberts算子【1】是一种利用局部差分算子寻找边缘的算子,它由下式给出 :g ( x , y) = [ f ( x , y) - f ( x + 1 , y + 1) ]2 +[ f ( x + 1 , y) - f ( x , y + 1) ]2(1)其中 f ( x , y ) 、 f ( x + 1 , y ) 、 f ( x , y + 1) 和 f ( x + 1 , y + 1) 分别为 4领域的坐标,且是具有整数像素坐标的输入图像。
Roberts算子是2X 2 算子模板。
基于MATLAB边缘检测与提取的几种方法的比较数字图像边缘检测(Digital Image Processing)又称为计算机图像边缘检测,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。
由于图像边缘是图像最基本的特征之一,往往携带着一幅图像的大部分信息。
而边缘存在于图像的不规则结构和不平稳现象中,也即存在于信号的突变点处,这些点给出了图像轮廓的位置,这些轮廓常常是我们在图像边缘检测时所需要的非常重要的一些特征条件,这就需要我们对一幅图像检测并提取出它的边缘。
在通常情况下,我们可以将信号中的奇异点和突变点认为是图像中的边缘点,其附近灰度的变化情况可从它相邻像素灰度分布的梯度来反映。
根据这一特点,提出了多种边缘检测算子:如Robert算子、Sobel 算子、Prewitt 算子、Laplacian 算子,Canny算子等。
这些方法多是以待处理像素为中心的邻域作为进行灰度分析的基础,实现对图像边缘的提取并已经取得了较好的处理效果。
经典的边界提取技术大都基于微分运算。
首先通过平滑来滤除图像中的噪声,然后进行一阶微分或二阶微分运算,求得梯度最大值或二阶导数的过零点,最后选取适当的阈值来提取边界。
本文主要介绍几种经典的边缘提取算法,选取两种用MATLAB语言编程实现,对提取结果进行比较和分析。
图像边缘检测的基本步骤:(1)滤波。
边缘检测主要基于导数计算,但受噪声影响。
但滤波器在降低噪声的同时也导致边缘强度的损失。
(2)增强。
增强算法将邻域中灰度有显著变化的点突出显示。
一般通过计算梯度幅值完成。
(3)检测。
但在有些图像中梯度幅值较大的并不是边缘点。
最简单的边缘检测是梯度幅值阈值判定。
(4)定位。
精确确定边缘的位置。
几种边缘算子的比较以柚子的图片为例1、Roberts算子是一种利用局部差分算子寻找边缘的算子,Roberts算子边缘定位准,但是对噪声敏感。
适用于边缘明显而且噪声较少的图像分割,在应用中经常用Roberts算子来提取道路。
matlab 边缘检测算子Matlab是一种有效的数学工具,用于进行各种计算,包括图像处理。
Matlab提供多种边缘检测算子,这使得我们可以轻松地对图像进行处理并提取出目标对象的轮廓,这篇文章将详细讲解Matlab边缘检测算子的使用步骤。
第一步是加载图像。
我们可以使用imread函数来读取图像。
例如:img=imread('picture.jpg');第二步是将图像转换为灰度图像。
由于灰度图像只有一种颜色,因此检测边缘会更准确。
我们可以使用rgb2gray函数将图像转换为灰度图像。
例如:gray_img=rgb2gray(img);第三步是将图像的强度值进行归一化处理。
我们需要将图像转换为双精度类型的数组,并将其值限制在0到1之间。
这样可以更好地展示图像特征。
我们可以使用im2double函数来实现。
例如:double_img=im2double(gray_img);第四步是选择一个边缘检测算子。
Matlab提供了众多的算子,如Sobel、Prewitt、Roberts等。
这里以Sobel算子为例进行讲解。
Sobel算子可以检测图像中的水平和垂直边缘。
使用Sobel算子的函数为edge。
例如:edge_img=edge(double_img,'Sobel');第五步是将结果显示出来。
我们可以使用imshow函数来显示图像。
例如:imshow(edge_img);这是一个简单的Matlab边缘检测算子使用示例。
我们可以通过更改算子以及分别设置阈值等参数来进行优化。
通过改变算子将可以获得更好的计算结果。
经典图像边缘检测(综合法思想)——Canny算子John Canny于1986年提出Canny算子,它与Marr(LoG)边缘检测方法类似,也属于是先平滑后求导数的方法。
John Canny研究了最优边缘检测方法所需的特性,给出了评价边缘检测性能优劣的三个指标:l好的信噪比,即将非边缘点判定为边缘点的概率要低,将边缘点判为非边缘点的概率要低;l高的定位性能,即检测出的边缘点要尽可能在实际边缘的中心;l对单一边缘仅有唯一响应,即单个边缘产生多个响应的概率要低,并且虚假响应边缘应该得到最大抑制。
用一句话说,就是希望在提高对景物边缘的敏感性的同时,可以抑制噪声的方法才是好的边缘提取方法。
Canny算子求边缘点具体算法步骤如下:1. 用高斯滤波器平滑图像.2. 用一阶偏导有限差分计算梯度幅值和方向.3. 对梯度幅值进行非极大值抑制.4. 用双阈值算法检测和连接边缘.步1. 图像与高斯平滑滤波器卷积:步3. 对梯度幅值进行非极大值抑制(non_maxima suppression,NMS):仅仅得到全局的梯度并不足以确定边缘,因此为确定边缘,必须保留局部梯度最大的点,而抑制非极大值。
解决方法:利用梯度的方向:步4. 用双阈值算法检测和连接边缘:对非极大值抑制图像作用两个阈值th1和th2,两者关系th1=0.4th2。
我们把梯度值小于th1的像素的灰度值设为0,得到图像1。
然后把梯度值小于th2的像素的灰度值设为0,得到图像2。
由于图像2的阈值较高,去除大部分噪音,但同时也损失了有用的边缘信息。
而图像1的阈值较低,保留了较多的信息,我们可以以图像2为基础,以图像1为补充来连结图像的边缘。
链接边缘的具体步骤如下:对图像2进行扫描,当遇到一个非零灰度的像素p(x,y)时,跟踪以p(x,y)为开始点的轮廓线,直到轮廓线的终点q(x,y)。
考察图像1中与图像2中q(x,y)点位置对应的点s(x,y)的8邻近区域。
[Python图像处理]⼗⼀.图像锐化与边缘检测之Roberts算⼦、Prewitt算⼦、。
Roberts算⼦Roberts算⼦即为交叉微分算法,它是基于交叉差分的梯度算法,通过局部差分计算检测边缘线条。
常⽤来处理具有陡峭的第噪声图像,当图像边缘接近于正45度或负45度时,该算法处理效果更理想,其缺点时对边缘的定位不太准确,提取的边缘线条较粗。
在Python中,Roberts算⼦主要是通过Numpy定义模板,再调⽤OpenCV的filter2D()函数实现边缘提取。
该函数主要是利⽤内核实现对图像的卷积运算,其函数原型如下:dst = filter2D(src, ddepth, kernel, dts, anchor,delta, borderType)src:表⽰输⼊图像ddepth: 表⽰⽬标图像所需的深度kernel: 表⽰卷积核,⼀个单通道浮点型矩阵anchor:表⽰内核的基准点,其默认值为(-1, -1),位于中⼼位置delta:表⽰在存储⽬标图像前可选的添加到像素的值,默认值为0borderType:表⽰边框模式import cv2import numpy as npimport matplotlib.pyplot as pltimg = cv2.imread("src.png")img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)grayImage = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# Roberts算⼦kernelx = np.array([[-1, 0], [0, 1]], dtype=int)kernely = np.array([[0, -1], [1, 0]], dtype=int)x = cv2.filter2D(grayImage, cv2.CV_16S, kernelx)y = cv2.filter2D(grayImage, cv2.CV_16S, kernely)# 转转成uint8absX = cv2.convertScaleAbs(x)absY = cv2.convertScaleAbs(y)Roberts = cv2.addWeighted(absX, 0.5, absY, 0.5, 0)# 正常显⽰中⽂标签plt.rcParams["font.sans-serif"] = ["SimHei"]# 显⽰图形titles = ["原始图像", "Roberts算⼦"]images = [img, Roberts]for i in range(2):plt.subplot(1, 2, i+1)plt.imshow(images[i], "gray")plt.title(titles[i])plt.xticks([])plt.yticks([])plt.show()效果如下:Prewitt算⼦Prewitt是⼀种图像边缘检测的微分算⼦,其原理是利⽤特定区域内像素值产⽣的差分实现边缘检测。
matlab-图像处理-边缘检测算法五种五种实现matlab边缘检测算法:⽅法⼀:matlab⾃带的edge函数:将图⽚保存为lena.jpgI=imread('lena.jpg');%提取图像img=rgb2gray(I);[m,n]=size(img);BW1=edge(img,'sobel'); %⽤Sobel算⼦进⾏边缘检测BW2=edge(img,'roberts');%⽤Roberts算⼦进⾏边缘检测BW3=edge(img,'prewitt'); %⽤Prewitt算⼦进⾏边缘检测BW4=edge(img,'log'); %⽤Log算⼦进⾏边缘检测BW5=edge(img,'canny'); %⽤Canny算⼦进⾏边缘检测h=fspecial('gaussian',5);%?⾼斯滤波BW6=edge(img,'canny');%⾼斯滤波后使⽤Canny算⼦进⾏边缘检测subplot(2,3,1), imshow(BW1);title('sobel edge check');subplot(2,3,2), imshow(BW2);title('roberts edge check');subplot(2,3,3), imshow(BW3);title('prewitt edge check');subplot(2,3,4), imshow(BW4);title('log edge check');subplot(2,3,5), imshow(BW5);title('canny edge check');subplot(2,3,6), imshow(BW6);title('gasussian&canny edge check'); 效果如下图所⽰:⽅法⼆:Laplacian算法clear;sourcePic=imread('lena.jpg');%图像读⼊grayPic=mat2gray(sourcePic);%实现图像的矩阵归⼀化操作[m,n]=size(grayPic);newGrayPic=grayPic;LaplacianNum=0;%经Laplacian操作得到的每个像素的值LaplacianThreshold=0.2;%设定阈值for j=2:m-1 %进⾏边界提取for k=2:n-1LaplacianNum=abs(4*grayPic(j,k)-grayPic(j-1,k)-grayPic(j+1,k)-grayPic(j,k+1)-grayPic(j,k-1));if(LaplacianNum > LaplacianThreshold)newGrayPic(j,k)=255;elsenewGrayPic(j,k)=0;endendendfigure,imshow(newGrayPic);title('Laplacian算⼦的处理结果') 效果图如下:⽅法三:Prewitt算法%Prewitt 算⼦的实现:clear;sourcePic=imread('lena.jpg');grayPic=mat2gray(sourcePic);[m,n]=size(grayPic);newGrayPic=grayPic;PrewittNum=0;PrewittThreshold=0.5;%设定阈值for j=2:m-1 %进⾏边界提取for k=2:n-1PrewittNum=abs(grayPic(j-1,k+1)-grayPic(j+1,k+1)+grayPic(j-1,k)-grayPic(j+1,k)+grayPic(j-1,k-1)-grayPic(j+1,k-1))+abs(grayPic(j-1,k+1)+grayPic(j,k+1)+grayPic(j+1,k+1)-grayPic(j-1,k-1)-grayPic(j,k-1)-grayPic(j+1,k-1)); if(PrewittNum > PrewittThreshold)newGrayPic(j,k)=255;elsenewGrayPic(j,k)=0;endendendfigure,imshow(newGrayPic);title('Prewitt算⼦的处理结果') 效果图如下:⽅法四:Sobel算法%Sobel 算⼦的实现:clear;sourcePic=imread('lena.jpg');grayPic=mat2gray(sourcePic);[m,n]=size(grayPic);newGrayPic=grayPic;sobelNum=0;sobelThreshold=0.7;for j=2:m-1for k=2:n-1sobelNum=abs(grayPic(j-1,k+1)+2*grayPic(j,k+1)+grayPic(j+1,k+1)-grayPic(j-1,k-1)-2*grayPic(j,k-1)-grayPic(j+1,k-1))+abs(grayPic(j-1,k-1)+2*grayPic(j-1,k)+grayPic(j-1,k+1)-grayPic(j+1,k-1)-2*grayPic(j+1,k)-grayPic(j+1,k+1)); if(sobelNum > sobelThreshold)newGrayPic(j,k)=255;elsenewGrayPic(j,k)=0;endendendfigure,imshow(newGrayPic);title('Sobel算⼦的处理结果') 效果如下:⽅法五:Roberts 算⼦的实现%Roberts 算⼦的实现:clear all;clc;sourcePic=imread('lena.jpg');grayPic=mat2gray(sourcePic);[m,n]=size(grayPic);newGrayPic=grayPic;robertsNum=0;robertThreshold=0.2;for j=1:m-1for k=1:n-1robertsNum = abs(grayPic(j,k)-grayPic(j+1,k+1)) + abs(grayPic(j+1,k)-grayPic(j,k+1)); if(robertsNum > robertThreshold)newGrayPic(j,k)=255;elsenewGrayPic(j,k)=0;endendendfigure,imshow(newGrayPic);title('roberts算⼦的处理结果') 效果图:。
经典图像边缘检测(综合法思想)Marr算子
經典圖像邊緣檢測(綜合法思想)——Marr算子
所謂綜合法是指通過兩種以上的方法來獲取邊緣。
在上述的各種邊緣檢測方法中,由於種種原因,圖像常常受到隨機噪音干擾,在其上執行邊緣檢測的結果常常把噪聲當做邊緣點而檢測出來,而真正的邊緣也由於受噪聲干擾而沒能被檢測出來。
D.Marr 和E.Hildreth[1980]提出一種解決思路:首先對原始圖像作最佳平滑,再求邊緣。
這樣就需要解決兩個問題:
a. 選擇什麼樣的濾波器平滑;
b. 選擇什麼算子來檢測邊緣。
D.Marr 和
E.Hildreth選擇了採用正態分佈的高斯函數對圖像作平滑,即:
對於選擇什麼算子來檢測邊緣問題,D.Marr 和E.Hildreth選擇了采用無方向性的拉普拉斯算子對圖像g(x,y)作邊緣檢測。
由於的平滑性質能減少噪聲的影響,所以當邊緣模糊或噪聲較大時,利用檢測過零點能提供較可靠的邊緣位置。
具體步驟如下:step1:平滑函數採用高斯函數;
step2:邊緣增強用二階導數(二維拉普拉斯函數);
step3:邊緣檢測判據是二階導數零交叉點;
step4:採用線性插值的方法估計邊緣的位置。
采用小窗口Marr算子提取图像边缘
费旭东;荆仁杰
【期刊名称】《通信学报》
【年(卷),期】1993(014)004
【摘要】Marr算子是数字图像边缘提取算子中较好的一种。
通常Marr算子采用较大的窗口进行计算。
窗口的系数一般是对▽~2G(x,y,σ)函数直接取样。
但当窗口尺寸较小时会出现较大的误差,由此导致边缘提取的效果变坏。
我们提出一种计算模板系数的新方法。
从理论上说,这种方法相当于对源图像进行样条插值,然后与
▽~2G(x,y,σ)进行卷积,最后对卷积结果取样。
对多幅图像的计算结果表明,这种方法取得了良好的效果。
由于模板尺寸小,易于硬件实现。
这种方法具有较大的应用价值。
【总页数】7页(P28-34)
【作者】费旭东;荆仁杰
【作者单位】不详;不详
【正文语种】中文
【中图分类】TP391.41
【相关文献】
1.采用自适应canny算子的树上柑橘图像边缘检测 [J], 彭辉;文友先;吴兰兰;翟瑞芳;刘善梅
2.基于Marr-Hildreth算子多尺度图像边缘检测 [J], 张光年;葛庆平
3.基于Canny算子的改进型图像边缘提取算法 [J], 范晞;费胜巍;储有兵
4.基于改进局部二值模式算子与蚁群优化的图像边缘提取算法 [J], 刘晓妍
5.一种基于改进Sobel算子的苹果图像边缘提取算法的研究 [J], 陈浩;黄勋;赵志明因版权原因,仅展示原文概要,查看原文内容请购买。
經典圖像邊緣檢測(綜合法思想)——Marr算子
所謂綜合法是指通過兩種以上的方法來獲取邊緣。
在上述的各種邊緣檢測方法中,由於種種原因,圖像常常受到隨機噪音干擾,在其上執行邊緣檢測的結果常常把噪聲當做邊緣點而檢測出來,而真正的邊緣也由於受噪聲干擾而沒能被檢測出來。
D.Marr 和 E.Hildreth[1980]提出一種解決思路:首先對原始圖像作最佳平滑,再求邊緣。
這樣就需要解決兩個問題:
a. 選擇什麼樣的濾波器平滑;
b. 選擇什麼算子來檢測邊緣。
D.Marr 和
E.Hildreth選擇了採用正態分佈的高斯函數對圖像作平滑,即:
對於選擇什麼算子來檢測邊緣問題,D.Marr 和E.Hildreth選擇了采用無方向性的拉普拉斯算子對圖像g(x,y)作邊緣檢測。
由於的平滑性質能減少噪聲的影響,所以當邊緣模糊或噪聲較大時,利用檢測過零點能提供較可靠的邊緣位置。
具體步驟如下:
step1:平滑函數採用高斯函數;
step2:邊緣增強用二階導數(二維拉普拉斯函數);
step3:邊緣檢測判據是二階導數零交叉點;
step4:採用線性插值的方法估計邊緣的位置。