1、Sobel算法概念
在边缘检测中,常用的一种模板是Sobel 算子。Sobel 算子有两个,一个是检测水平边缘的 ;另一个是检测垂直边缘的 。与Prewitt算子相比,Sobel算子对于像素的位置的影响做了加权,可以降低边缘模糊程度,因此效果更好。
Sobel算子另一种形式是各向同性Sobel(Isotropic Sobel)算子,也有两个,一个是检测水平边缘的 ,另一个是检测垂直边缘的 。各向同性Sobel算子和普通Sobel算子相比,它的位置加权系数更为准确,在检测不同方向的边沿时梯度的幅度一致。将Sobel算子矩阵中的所有2改为根号2,就能得到各向同性Sobel的矩阵。
由于Sobel算子是滤波算子的形式,用于提取边缘,可以利用快速卷积函数, 简单有效,因此应用广泛。美中不足的是,Sobel算子并没有将图像的主体与背景严格地区分开来,换言之就是Sobel算子没有基于图像灰度进行处理,由于Sobel算子没有严格地模拟人的视觉生理特征,所以提取的图像轮廓有时并不能令人满意。 在观测一幅图像的时候,我们往往首先注意的是图像与背景不同的部分,正是这个部分将主体突出显示,基于该理论,我们给出了下面阈值化轮廓提取算法,该算法已在数学上证明当像素点满足正态分布时所求解是最优的。
sobel边缘检测处理过程如下:
(1)首先将3x3的窗口,从待处理图片的左上角向右滑动,可以设置滑动的步进;
(2)计算当前3x3窗口区域的Gx 、 Gy的值;
(3)根据公式,计算出该像素点的灰度值G。
对上图3x3的图像区域,计算Gx 、 Gy的值,
图像的每一个像素的横向及纵向灰度值通过以下公式结合,来计算该点灰度的大小:
2、FPGA实现Sobel算法
未完,待续
参考文献
[1] https://blog.csdn.net/Pieces_thinking/article/details/83275171#327__Verilog__37
[2] https://blog.csdn.net/Pieces_thinking/article/details/83275171