OpenCV學習筆記 頂帽 黑帽 形態學梯度

2021-08-20 08:09:00 字數 2437 閱讀 2052

一、頂帽

又稱禮帽,是原始影象與進行開運算之後得到的影象的差。

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

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

二、黑帽

是進行閉運算以後得到的影象與原影象的差。

黑帽運算之後的效果圖突出了與原影象輪廓周圍的區域更暗的區域,且這一操作和選擇的核大小相關。所以黑帽運算用來分離比鄰近點暗一些的斑塊。

三、形態學梯度

形態學梯度是膨脹和腐蝕的差別,結果看上去就像前景物體的輪廓。計算的梯度常見的有三種:

基本梯度:

基本梯度是用膨脹後的影象減去腐蝕後的影象得到差值影象,稱為梯度影象,也是opencv中支援的計算形態學梯度的方法,而此方法得到的梯度又被稱為基本梯度。

內部梯度:

是用原影象減去腐蝕後的影象得到差值影象,稱為影象的內部梯度

外部梯度:

影象膨脹後的影象減去原來的影象得到的差值影象,稱為影象的外部梯度。

defgradient_demo(img):

gray = cv.cvtcolor(img, cv.color_bgr2gray)

ret, thresh = cv.threshold(gray, 0, 255, cv.thresh_binary_inv | cv.thresh_otsu)

cv.imshow('thresh', thresh)

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

#基本梯度

dst = cv.morphologyex(thresh, cv.morph_gradient, kernel)

cv.imshow('gradient', dst)

#內部梯度

erode = cv.erode(img, kernel)

dst1 = cv.subtract(img, erode)

cv.imshow('inernal', dst1)

#外部梯度

dilate = cv.dilate(img, kernel)

dst2 = cv.subtract(dilate, img)

cv.imshow('external', dst2)

我們直接都用原影象直接計算了

OpenCV 21頂帽 黑帽 形態學梯度

頂帽 又稱禮帽,原影象與開操作後的影象之間的差值影象 黑帽 閉操作影象與原影象的差值影象 增加亮度 cv.imshow tophat dst defblack hat demo image gray cv.cvtcolor image,cv.color bgr2gray kernel cv.gets...

形態學處理梯度 頂帽 黑帽

基本梯度 經過膨脹操作的影象與經過腐蝕操作影象的差值影象,可以用來提取出物體的邊緣部分。內部梯度 原影象與經過腐蝕操作的影象的差值影象。外部梯度 經過膨脹操作的影象與原影象的差值影象。opencv中支援的是基本梯度,下面放一段 和執行結果更直觀的理解 原影象與經過開運算操作的影象的差值影象,作用是可...

OpenCV Python 頂帽黑帽和形態學梯度

1 頂帽 頂帽 原始影象 開操作 2 黑帽 黑帽 閉操作 原始影象 3 形態學梯度 1 基本梯度 基本梯度 膨脹後的影象 腐蝕後的影象 2 內部梯度 內部梯度 原始影象 腐蝕後的影象 3 外部梯度 外部梯度 膨脹後的影象 原始影象 引入opencv模組 import cv2 as cv 引入nump...