opencv再學習之路(三) 形態學操作

2022-05-16 21:04:00 字數 2067 閱讀 7033

1. 腐蝕和膨脹

腐蝕和膨脹是最基本的形態學操作,腐蝕和膨脹都是針對白色部分(高亮部分)而言的。

膨脹就是使影象中高亮部分擴張,效果圖擁有比原圖更大的高亮區域;腐蝕是原圖中的高亮區域被蠶食,效果圖擁有比原圖更小的高亮區域。膨脹是求區域性最大值的操作,腐蝕是求區域性最小值的操作。

膨脹與腐蝕能實現多種多樣的功能,主要如下:

1 #include"

stdafx.h

"2 #include3 #include4 #include5 #include6 #include7

8using

namespace

std;

9using

namespace

cv;10

11//

常見資料結構使用方法

12int

main()

13

2. 高階操作

(1).腐蝕 

結構a被結構b腐蝕的定義為, a⨀

b='>a⨀b=

a⨀b=

可以理解為,移動結構b,如果結構b與結構a的交集完全屬於結構a的區域內,則儲存該位置點,所有滿足條件的點構成結構a被結構b腐蝕的結果。 (最上面那個綠色方框應該沒有)

(2).膨脹 

結構a被結構b膨脹的定義為, a⨁

b='>a⨁b=

a⨁b=

可以理解為,將結構b在結構a上進行卷積操作,如果移動結構b的過程中,與結構a存在重疊區域,則記錄該位置,所有移動結構b與結構a存在交集的位置的集合為結構a在結構b作用下的膨脹結果。 

圖示中紅色框內的區域表示結構a在結構b的作用下膨脹的結果。

這裡有另外乙個例子:

(3).開操作 

先腐蝕後膨脹的操作稱之為開操作。它具有消除細小物體,在纖細處分離物體和平滑較大物體邊界的作用。 採用上圖的結構b對原件進行開操作,

(4).閉操作 

先膨脹後腐蝕的操作稱之為閉操作。它具有填充物體內細小空洞,連線鄰近物體和平滑邊界的作用。 採用上圖的結構對原件進行閉操作, 

3. 高階操作

(1). 頂帽運算

為原影象與上文剛剛介紹的「開運算「的結果圖之差,數學表示式如下:

因為開運算帶來的結果是放大了裂縫或者區域性低亮度的區域,因此,從原圖中減去開運算後的圖,得到的效果圖突出了比原圖輪廓周圍的區域更明亮的區域,且這一操作和選擇的核的大小相關。

頂帽運算往往用來分離比鄰近點亮一些的斑塊。當一幅影象具有大幅的背景的時候,而微小物品比較有規律的情況下,可以使用頂帽運算進行背景提取。

(2). 黑帽運算

為」閉運算「的結果圖與原影象之差。數學表示式為:

黑帽運算後的效果圖突出了比原圖輪廓周圍的區域更暗的區域,且這一操作和選擇的核的大小相關。

黑帽運算用來分離比鄰近點暗一些的斑塊。

(3).  一些形態學操作的巨集定義

1 #include"

stdafx.h

"2 #include3 #include4 #include5 #include6 #include7

8using

namespace

std;

9using

namespace

cv;10

1112

intmain()

13

opencv學習 形態學

void cvdilate const cvarr src,cvarr dst,iplconvkernel element null,int iterations 1 void cverode const cvarr src,cvarr dst,iplconvkernel element null,...

OPenCV學習11 形態學

在opencv sources samples下面提供了很多的官方例程,是學習opencv的最好的資源。開運算 閉運算 形態學梯度 膨脹減去腐蝕 頂帽 top hat 原影象與開操作之間的差值影象。黑帽 閉操作影象和原影象之間的差值影象。提取直線 提取步驟 輸入彩色影象 轉化為灰度影象 轉化為二值影...

OpenCV學習筆記 形態學

opencv提供了通用的形態學函式cvmorphologyex,該函式能夠實現開運算,閉運算,形態梯度,禮帽操作,黑帽操作,例題如下 include stdafx.h include cv.h include highgui.h include highgui.h int main int argc...