图像滤波与特征提取技术详解
1. 拉普拉斯算子滤波
拉普拉斯算子在图像处理中是一种重要的工具,它用于图像的边缘检测和增强。形式上,二维函数的拉普拉斯定义为其二阶导数之和,在最简单的形式下,可以用一个 3x3 的核来近似。
对于拉普拉斯算子,也可以使用更大的核来计算,由于该算子对图像噪声更为敏感,在不考虑计算效率的情况下,使用更大的核是可取的。这些更大的核是通过高斯函数的二阶导数计算得到的,相应的算子通常称为高斯拉普拉斯(LoG)。需要注意的是,拉普拉斯算子的核值总和始终为 0,这保证了在强度恒定的区域,拉普拉斯值为 0。
拉普拉斯算子的效果乍一看可能难以解释。从核的定义来看,任何孤立的像素值(即与相邻像素值差异很大的值)都会被该算子放大,这是算子对噪声高度敏感的结果。然而,更有趣的是观察图像边缘周围的拉普拉斯值。图像中边缘的存在是不同灰度强度区域之间快速过渡的结果。沿着边缘观察图像函数的变化(例如,从暗到亮的过渡),可以观察到灰度的上升必然意味着从正曲率(当强度值开始上升时)到负曲率(当强度即将达到高原时)的逐渐过渡。因此,正拉普拉斯值和负拉普拉斯值之间的过渡(或反之)是边缘存在的一个很好的指标。换句话说,边缘将位于拉普拉斯函数的零交叉点处。
以下是一个用于检测拉普拉斯零交叉点的代码示例:
// Get a binary image of the zero-crossings
// laplacian image should be CV_32F
cv::Mat getZeroCrossings(cv::Mat laplace) {
// threshold at 0
// ne
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



