边缘检测滤波器

图像中灰度变化较大的非连续像素可以看做是边缘,边缘是最为重要的图像特征之一,在目标检测、追踪、识别中都必不可少的使用到了边缘,人类视觉系统也对边缘信息非常敏感。如果在图像中检测到边缘并对其进行定位,那么对后续的算法将起到至关重要的作用。灰度的突然变化会在一阶导数中引起波峰或者波谷,或者在二阶导数中等效的引起零交叉。
在下面我们介绍一些边缘检测的方法。

  • 一阶微分检测器
    从数学上讲,像素的灰度值变化,可以用一阶微分来检测,对于二维离散函数,其微分可以表示为:


    在进行离散图像处理的时候,上述运算可以通过,[-1 1]和[-1;1]两个模板来卷积完成,但是考虑到模板应该具有对称性,所以一般我们进行检测的模板大小都是(2n+1) x (2n+1)这样形式的,为此,我们利用下面的模板来进行一阶导数,虽然其领域变大了,但是我们仍然是处理的像素之间的差,因此,我们还是将其看做了一阶导数,这种最原始的边缘检测算子称为Prewitt算子:
    Prewitt算子

如果将中心位置处的系数都换成2,那么我们可以得到如下图所示的Sobel算子。


Sobel算子

Sobel算子具有对原始图像平滑的效果,因为如果对图像进行平滑,然后进行X方向上的滤波的话,我们可以证明如下:



正是因为这种平滑效果,使得Sobel的效果要好于Prewitt,并且也较为常用。
  • 二阶微分检测器
    二阶微分同样可以如一阶微分一样,检测到函数的变化。二阶微分其实就是拉普拉斯算子,一般使用下面的方法表示:

    为了适应图像处理,我们将拉普拉斯算子写成离散形式,其中

因此最终结果为:


所以拉普拉斯算子在图像处理中的模板为:


如果我们考虑对角线方向和正负的话,我们可以得到如下几种拉普拉斯模板:


几种拉普拉斯滤波器模板

拉普拉斯算子对噪声和离散点极为敏感,所以在利用其进行边缘检测的时候,需要首先对图像进行平滑,除去噪声的影响。因为高斯运算和拉普拉斯运算可以叠加,我们可以将其的最终形式写为:


推导

最终得到:


高斯拉普拉斯

我们使用如下Matlab来看看LoG函数的样子

laplace_gaussian_filter = fspecial('log',[40 40],4.5);
subplot(121)
surf(laplace_gaussian_filter);
subplot(122)
surf(-laplace_gaussian_filter);
LoG函数,以及其倒过来的样子

如果把LoG函数倒过来,它的样子很像“墨西哥草帽”,所以它也被称作墨西哥草帽算子。使用LoG算子时,由于高斯滤波的原因,它会在尺寸上将结构的灰度(包括噪声)降低到远小于 σ的程度。下面我利用一个实验来看看LoG滤波器的效果

%生产随机噪声信号
D = rand(1,200)*0.5;
%产生一个阶跃信号
E = [zeros(1,100),5*ones(1,100)];
%将两个信号相加,得到我们进行处理的信号
S = E + D;

%首先定义滤波器
laplace_filter = fspecial('laplacian');
laplace_gaussian_filter = fspecial('log',[20 20],3);
gaussian_filter = fspecial('gaussian',20,3);

figure 
subplot(231)
plot(S);
title('原始信号')

subplot(232);
surf(G);
title('高斯滤波器')

guassian_signal = imfilter(S,gaussian_filter,'symmetric');
subplot(233);
plot(guassian_signal);
title('高斯滤波后信号');

laplace_gaussian_signal = imfilter(guassian_signal,laplace_filter,'symmetric');
subplot(234);
plot(laplace_gaussian_signal);
title('对高斯滤波后的信号施加拉普拉斯算子');

Log_signal  = imfilter(S,laplace_gaussian_filter,'symmetric');
subplot(235)
plot(Log_signal);
title('直接在原始信号上LoG算子');

laplace_signal = imfilter(S,laplace_filter,'symmetric');
subplot(236)
plot(laplace_signal);
title('直接在原始信号上施加拉普拉斯算子');

可视化

两个不同σ值的高斯滤波器的差,可以用来近似LoG滤波器。这一点不难想象,因为高斯滤波器是低通滤波器,两个低通滤波器的差可以构成一个带通滤波器(LoG是带通滤波器)(这一点在图像金字塔中有提及),我们可以通过一个简单的Matlab实验来实现。

gaussian_filter_1 = fspecial('gaussian',40,8);
gaussian_filter_2 = fspecial('gaussian',40,6);
T = gaussian_filter_2 - gaussian_filter_1;
subplot(131)
surf(gaussian_filter_1);
subplot(132)
surf(gaussian_filter_2);
subplot(133)
surf(T);
利用高斯滤波器之差来构成LoG

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容