LOG和DOG邊緣檢測

2021-08-22 17:55:54 字數 2312 閱讀 5472

差分形式為 ▽2

f(x,

y)=(

f(x+

1,y)

−f(x

,y))

−(f(

x,y)

−f(x

−1,y

))+(

f(x,

y+1)

−f(x

,y))

−(f(

x,y−

1)−f

(x,y

−1))

▽ 2f

(x,y

)=(f

(x+1

,y)−

f(x,

y))−

(f(x

,y)−

f(x−

1,y)

)+(f

(x,y

+1)−

f(x,

y))−

(f(x

,y−1

)−f(

x,y−

1))laplacian 可以檢測出邊緣,為了排查雜訊干擾,所有先對影象用高斯濾波器做低通濾波。高斯濾波和laplacian運算元連起來就是log.

至於為什麼laplacian可以檢測出邊界,參考一下部落格

opencv函式 laplacian 運算元實現

laplace log dog邊緣檢測 d

og=g

(x,y

,σ1)

−g(x

,y,σ

2)d og

=g(x

,y,σ

1)−g

(x,y

,σ2)

dog就是對影象進行兩次不同的高斯變換,然後對應的畫素相減。dog運算元和log運算元的效果類似,但是計算複雜量低很多。

為什麼dog可以達到log的效果,參考一下部落格

laplace log dog邊緣檢測

dog和log運算元

#include 

using

namespace

std;

using

namespace cv;

void gausssianfilter(mat srcimg, mat dstimg, double sigma1, double sigma2=-1)

if (sigma2 < 0)

int radius1 = (int)(3 * sigma1 + 0.5f);

int radius2 = (int)(3 * sigma2 + 0.5f);

mat kernel(2 * radius1 + 1, 2 * radius2 + 1, cv_32f);

float fsum = 0;

for (int y = -radius1; y <= radius1; y++)//計算高斯卷積模板

}for (int y = -radius1; y <= radius1; y++)

}//用高斯模板與原影象做卷積

log和dog 邊緣檢測

擴充套件延伸參考

斑點檢測(log,dog)

計算機視覺之一:特徵檢測

Canny邊緣檢測

1.canny邊緣檢測基本原理 1 圖象邊緣檢測必須滿足兩個條件 一能有效地抑制雜訊 二必須盡量精確確定邊緣的位置。2 根據對訊雜比與定位乘積進行測度,得到最優化逼近運算元。這就是canny邊緣檢測運算元。3 類似與marr log 邊緣檢測方法,也屬於先平滑後求導數的方法。2.canny邊緣檢測演...

Canny邊緣檢測

canny運算元是邊緣檢測運算元中最常用的一種,是公認效能優良的一種運算元,常被其它邊緣檢測運算元作為標準運算元進行優劣分析。canny演算法基本可以分為3個步驟 平滑 梯度計算 基於梯度值及梯度方向的候選點過濾 1 平滑 影象梯度的計算對雜訊很敏感,因此必須首先對其進行低通濾波。在這裡使用5 5的...

Sobel 邊緣檢測

sobel邊緣檢測演算法 索貝爾運算元 sobel operator 主要用作邊緣檢測,在技術上,它是一離散性差分運算元,用來運算影象亮度函式的灰度之近似值。在影象的任何一點使用此運算元,將會產生對應的灰度向量或是其法向量 sobel 卷積因子為 該運算元包含兩組 3x3的矩陣,分別為橫向及縱向,將...