一、实验目标
1、对“circle.bmp”进行边缘检测,得到边缘图像。
2、对得到的边缘图像使用 Hough 变换进行圆的检测,创建一个与原图大小 一致的新图像,背景为黑色,圆所在区域为红色。
二、实验原理
1)边缘检测
①边缘点是指其周围像素的灰度有阶跃变化)或屋顶状变化像素、常存在于目 标与背景之间、目标与目标之间、目标与其影子之间。
②因为灰度的变化,可以反映为导数。因此,根据边缘的形状,可以通过求导 的方法来寻求边缘。
③图像灰度的变化情况可以用灰度分布的梯度来反映,给定连续图像 f(x,y), 其方向导数在边缘法线方向上取得局部最大值。 因此,边缘的检测转化为 求 f(x,y)在(x,y)处的方向导数问题。
④方向导数取最大值时的方向即为梯度方向,方向导数的最大值即为梯度的 模。因此边缘强度即梯度的模。
⑤Canny 算法一般步骤:转化为灰度图、滤波降噪处理、计算图像中每个像素 点的梯度强度和方向、非极大值抑制、双阈值检测和抑制孤立低阈值点。
⑥常见的算子:Sobel、Prewitt、Roberts、Laplacian、Marr-Hildreth 等。
2)Hough 变换圆检测
①基本思想:图像中每一点对参数组合进行表决,赢得多数票的参数组合为胜 者(结果)。
②主要步骤:
a.估计圆心。利用 Canny 边缘检测和 Sobel 算子,统计圆心(a,b),个数越大 约有可能是圆心。 b.估计半径。计算 Canny 图中所有非 0 点距离圆心的距离,统计得到可能的 半径值(N(r) 越大,说明这个距离值出现次数越多,越有可能是半径值)。
三、主要代码和结果