Marr-Hildreth边缘检测器C++实现

本文详细介绍了Marr-Hildreth边缘检测器的原理、实现步骤,包括高斯函数的取样细节和零交叉查找方法,并通过OpenCV库展示了C++实现的完整代码及效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 Marr-Hildreth边缘检测器

1.1  Marr-Hildreth边缘检测器的原理

Marr-Hiddreth是基于以下两个事实的:

1 灰度变换与图像尺寸无关,因此边缘检测可以使用不同的尺寸算子

2 灰度的突然变换会在一阶导数中导致波峰或波谷,或在二阶导数中等效的引起零交叉

 

用于边缘检测的算子应该有两个明显的特点:

1 它应该是一个能计算图像中每一点处的一阶导数或二阶导数的数字近似的微分算子

2 它应该能被调整以便在任何期望的尺寸上起作用,因此大算子也可用于检测模糊边缘,小算子可用于检测锐度集中的精细细节

 

满足这些条件的最令人满意的算子是高斯拉普拉斯算子(LoG)

                    (1)

            (2)

                                                                             图1

图1(a)到(c)显示了一个LoG的负函数的三维图,图像和剖面,LoG的零交叉出现在x2+y2=处,图(d)显示的是5*5的模板,它近似于(a)的形状,该近似不唯一

任意尺寸的模板可以通过式(2)取样并标定系数以使系数之和为0来生成,生成LoG滤波器的的一种更有效的方式是以n*n对式(1)进行取样,然后将结果阵列与一个拉普拉斯模板进行卷积.

Marr-Hildreth算法是由LoG滤波器与一副图像的卷积组成

                 (3)

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值