Sobel边缘检测的实现
Sobel边缘检测的实现Sobel边缘检测算法是一种基于梯度的图像边缘检测的方式,该算法容易在硬件上实现,且能够平滑一定的噪声,边缘检测效果较好。Sobel 算子的边缘检测是在图像空间内利用 2 个方向模板与图像进行邻域卷积来完成的。这两个方向模板,一个检测水平边缘,另一个检测垂直边缘。它们的方向梯度算子模板如下:
水平方向梯度模板 垂直方向梯度模板
以模板内的数字为权重系数,与图像平面对应的像素值相乘可以求出水平梯度PX与垂直梯度PY。然后根据梯度计算公式, 求出梯度值|G|,并与预先设定的阈值进行比较从而确定图像的边沿。
根据以上分析,系统利用QUARTUS中的IP核模块并结合硬件语言编程实现了Sobel边缘检测模块的设计,具体实现过程如图4所示,其中乘加器是计算像素梯度值的主要模块。一个乘加器中包括3个乘法运算模块和1个加法运算模块,分布情况如图5所示,其中dataa为输入的行像素,datab为方向模板的权重系数。一个乘法器模块可以实现一行像素与其对应的模板系数的卷积运算。边缘检测模块需要6个乘加器来实现X方向和Y方向的梯度值运算。开方模块结合X方向与Y方向的梯度,确定该点的像素梯度值。然后再将得到的梯度值与阈值进行比较,从而确定图像的边缘。
Sobel边缘检测 对不住,昨天有事,子模版没来得及发 它们的方向梯度算子模板如下:
左边是水平方向梯度模板右边是垂直方向梯度模板 然后根据梯度计算公式, 求出梯度值|G|,并与预先设定的阈值进行比较从而确定图像的边沿。计算公式如下
页:
[1]