OpenCV Python 形態學操作

2022-04-11 15:03:01 字數 2945 閱讀 7346

常用的形態學操作:腐蝕、膨脹、開運算和閉運算

形態學操作就是改變物體的形狀,比如腐蝕就是"變瘦",膨脹就是"變胖"

形態學操作一般作用於二值化圖,來連線相鄰的元素或分離成獨立的元素。腐蝕和膨脹是針對中的白色部分!

白色的畫素為255,黑色的畫素值為0

這樣原圖中邊緣的地方就會變成0(黑色),達到了**的效果。

opencv中用 cv2.erode() 函式進行腐蝕,只需要指定核的大小就行:

import

cv2import

numpy as np

img = cv2.imread('

j.bmp

', 0)

kernel = np.ones((5, 5), np.uint8)

erosion = cv2.erode(img, kernel) #

腐蝕

這個核也叫結構元素,因為形態學操作其實也是應用卷積來實現的。結構元素可以是矩形、橢圓、十字形,可以用 cv2.getstructuringelement() 來生成不同形狀的結構元素,比如:

kernel = cv2.getstructuringelement(cv2.morph_rect, (5, 5))  #

矩形結構

kernel = cv2.getstructuringelement(cv2.morph_ellipse, (5, 5)) #

橢圓結構

kernel = cv2.getstructuringelement(cv2.morph_cross, (5, 5)) #

十字形結構

博主替換過核,效果差距不大。

dilation = cv2.dilate(img, kernel)  #

膨脹

img = cv2.imread('

j.bmp')

kernel = np.ones((5, 5), np.uint8) #

矩形結構

erosion = cv2.erode(img, kernel) #

腐蝕dilation = cv2.dilate(img, kernel) #

膨脹titles = ['

original

', '

erosion

', '

dilation']

images =[img, erosion, dilation]

#使用matplotlib顯示

#一行三列圖

先腐蝕後膨脹叫開運算(因為先腐蝕會分開物體),其作用是:分離物體,消除小區域。使用 cv.morphologyex() 函式實現:

#

開運算--先腐蝕後膨脹

kernel = cv2.getstructuringelement(cv2.morph_rect, (5, 5))

img1 = cv2.imread('

j_noise_out.bmp')

opening = cv2.morphologyex(img1, cv2.morph_open, kernel)

閉運算則相反:先膨脹後腐蝕(先膨脹會使白色的部分擴張,以至於消除"閉合"物體裡面的小黑洞,所以叫閉運算)

#

閉運算--先膨脹後腐蝕

開、閉運算確實很容易混淆。如果我們的目標物體外面有很多無關的小區域,就用開運算去除掉;如果物體內部有很多小黑洞,就用閉運算填充掉

形態學梯度:膨脹圖減去腐蝕圖,dilation - erosion,這樣會得到物體的輪廓:

頂帽:原圖減去開運算後的圖:src - opening

tophat = cv2.morphologyex(img, cv2.morph_tophat, kernel)
黑帽:閉運算後的圖減去原圖:closing - src

1. 形態學就是改變物體的形狀,腐蝕是物體"變瘦"、膨脹使物體"變胖"

2. 先腐蝕後膨脹會分離物體,所以叫開運算,常用來去除小區域物體

3. 先膨脹後腐蝕會消除物體內的小洞,所以叫閉運算。

OpenCV Python形態學變換

原理形態變換是根據的形狀進行的簡單運算。一般被用在二值影象上。它需要兩個輸入,乙個是我們的原始,另乙個是被叫做結構元素或者是核,用來決定運算的型別。兩個基本的形態運算是腐蝕和dilation.其他的變形如開,合,梯度等也會有。我們來看看他們在下面這張圖上的表現。1.腐蝕 腐蝕的基本理念就和土壤腐蝕一...

OpenCV Python 形態學轉換 十七

在這一章當中,我們將學習不同的形態學操作,例如侵蝕,膨脹,開運算,閉運算等。我們將看到不同的功能,例如 cv.erode cv.dilate cv.morphologyex 等。形態變換是一些基於影象形狀的簡單操作。通常在二進位制影象上執行。它需要兩個輸入,乙個是我們的原始影象,第二個是決定操作性質...

opencv python 7 形態學變換

形態學變換指將數學形態學作為工具從影象提取特徵或用於預處理或後處理的形態學過濾 細化和修剪等,主要針對二值影象。腐蝕即用乙個核掃過整張影象 類似2d卷積 若核中所有畫素均為1則置該畫素為1,否則為0,其結果就是邊界附近的白色畫素被抹去。cv2.erode 實現了該功能。膨脹與腐蝕相反,核中只要由乙個...