边缘检测之孤立点检测及Python实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了边缘检测之孤立点检测及Python实现相关的知识,希望对你有一定的参考价值。

参考技术A

边缘即指图像中连接在一起的像素值发生突变的像素点的集合,故边缘检测则为检测出图像中所有的边缘

根据边缘像素的像素值突变的特性,可以想象到 导数 是一种即为有效的手段。而在图像中的像素值是离散的值,故在实际边缘检测算法中采用 差分 来近似导数。

一阶导数


而对于 二阶导数


又根据一阶导数的差分公式可得


而对于上式,可知其为关于 的差分,故 可得到关于 的差分


综上可知

在图像中,灰度值的变化是双向的—— 轴与 轴。换句话说,在检测边缘像素点时,需要考虑到两个方向的梯度。而拉普拉斯算子在二维空间的表达式为


即为两个方向上的二阶导数之和,而二阶导数相对于一阶导数对于像素点的变化更为敏感,则应用拉普拉斯算子可十分有效的检测到孤立点。当然,也正因为拉普拉斯算子对于变化十分敏感,噪声对其的影响较大。

根据1.2中二阶导数的推导式,可得拉普拉斯算子如下

在点 计算的拉普拉斯算子的绝对值大于指定的阈值时(即该点的像素值变化明显),则认为该点为边缘点;对于输出图像中该位置为亮点。否则,为暗点。表达式如下

在计算图像中的一阶导数与二阶导数时,空间滤波器是常用计算方法。计算过程为模板系数与在计算点处模板所对应的像素点的灰度值的乘积之和。当模板系数之和为 时,表示对于恒定灰度区域计算的模板想要为 。

空间滤波器模板

对应灰度值

两个矩阵元素对应相乘相加则为拉普拉斯算子

click me!

以上是关于边缘检测之孤立点检测及Python实现的主要内容,如果未能解决你的问题,请参考以下文章

[Python从零到壹] 五十七.图像增强及运算篇之图像锐化RobertsPrewitt算子实现边缘检测

[Python从零到壹] 五十八.图像增强及运算篇之图像锐化SobelLaplacian算子实现边缘检测

canny 算子python实现

[Python从零到壹] 六十.图像识别及经典案例篇之基于阈值及边缘检测的图像分割

opencv图像处理基础之膨胀和腐蚀

Python图像锐化及边缘检测(RobertsPrewittSobelLapllacianCannyLOG)