晓灰灰 发表于 2017-3-21 11:36:27

Sobel边缘检测的实现

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

星坠天际 发表于 2017-3-21 13:35:39

Sobel边缘检测

晓灰灰 发表于 2017-3-22 09:06:04

对不住,昨天有事,子模版没来得及发

晓灰灰 发表于 2017-3-22 09:08:16

它们的方向梯度算子模板如下:
  
左边是水平方向梯度模板右边是垂直方向梯度模板

晓灰灰 发表于 2017-3-22 09:08:49

然后根据梯度计算公式, 求出梯度值|G|,并与预先设定的阈值进行比较从而确定图像的边沿。计算公式如下
页: [1]
查看完整版本: Sobel边缘检测的实现