视觉算法笔记 - 边缘检测算法

忘是亡心i 2022-08-25 15:47 333阅读 0赞

方法

1 一阶梯度算子

正交梯度 : [1,-1], [1,-1]‘;

robet: 斜线差分(四点差分)

prewitt: 平均差分

sobel: 加权平均差分

检测赋值阈值,可检测边缘的方向

2 二阶导数算子 laplacian算子

模板 [0 -1 0; -1 4 -1;0 -1 0]/4; 方向无关,检测零交叉,可要求过零点的两边的差值大于一定的阈值

3 LoG

高斯滤波后再进行二阶导数,可先对高斯函数求二阶导数然后得到离散化模板,之后用模板和图像卷积

4 canny

以上在matlab中都采用edge实现。

关于零交叉的检测,参考代码,应该是对[- +]和[- 0 +]都进行检测:

% Look for the zero crossings: +-, -+ and their transposes
% We arbitrarily choose the edge to be the negative point
[rx,cx] = find( b(rr,cc) < 0 & b(rr,cc+1) > 0 …
& abs( b(rr,cc)-b(rr,cc+1) ) > thresh ); % [- +]
e((rx+1) + cx*m) = 1;
[rx,cx] = find( b(rr,cc-1) > 0 & b(rr,cc) < 0 …
& abs( b(rr,cc-1)-b(rr,cc) ) > thresh ); % [+ -]
e((rx+1) + cx*m) = 1;
[rx,cx] = find( b(rr,cc) < 0 & b(rr+1,cc) > 0 …
& abs( b(rr,cc)-b(rr+1,cc) ) > thresh); % [- +]‘
e((rx+1) + cx*m) = 1;
[rx,cx] = find( b(rr-1,cc) > 0 & b(rr,cc) < 0 …
& abs( b(rr-1,cc)-b(rr,cc) ) > thresh); % [+ -]‘
e((rx+1) + cx*m) = 1;

% Most likely this covers all of the cases. Just check to see if there
% are any points where the LoG was precisely zero:
[rz,cz] = find( b(rr,cc)==0 );
if ~isempty(rz)
% Look for the zero crossings: +0-, -0+ and their transposes
% The edge lies on the Zero point
zero = (rz+1) + cz*m; % Linear index for zero points
zz = find(b(zero-1) < 0 & b(zero+1) > 0 …
& abs( b(zero-1)-b(zero+1) ) > 2*thresh); % [- 0 +]‘
e(zero(zz)) = 1;
zz = find(b(zero-1) > 0 & b(zero+1) < 0 …
& abs( b(zero-1)-b(zero+1) ) > 2*thresh); % [+ 0 -]‘
e(zero(zz)) = 1;
zz = find(b(zero-m) < 0 & b(zero+m) > 0 …
& abs( b(zero-m)-b(zero+m) ) > 2*thresh); % [- 0 +]
e(zero(zz)) = 1;
zz = find(b(zero-m) > 0 & b(zero+m) < 0 …
& abs( b(zero-m)-b(zero+m) ) > 2*thresh); % [+ 0 -]
e(zero(zz)) = 1;

5 方向梯度算子

可求得某个方向的最大值

发表评论

表情:
评论列表 (有 0 条评论,333人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Canny边缘检测算法

    1、概述       图象的边缘是指图象局部区域亮度变化显著的部分,该区域的灰度剖面一般可以看作是一个阶跃,既从一个灰度值在很小的缓冲区域内急剧变化到另一个灰度相差较...

    相关 sobel边缘检测算法

    Sobel边缘检测算法是一种常用的图像处理技术,用于检测图像中的边缘和轮廓。该算法基于离散卷积操作,通过对图像进行滤波来寻找图像中灰度值的变化。Sobel算子是一种常用的卷积核

    相关 Canny边缘检测算法的实现

    转自:[canny边缘检测][canny] 图像边缘信息主要集中在高频段,通常说图像锐化或检测边缘,实质就是高频滤波。我们知道微分运算是求信号的变化率,具有加强高频分量的作用