OpenCV 21頂帽 黑帽 形態學梯度

2021-09-28 14:08:47 字數 3403 閱讀 5875

頂帽:又稱禮帽,原影象與開操作後的影象之間的差值影象

黑帽:閉操作影象與原影象的差值影象

# 增加亮度

cv.imshow(

"tophat"

, dst)

defblack_hat_demo

(image)

: gray = cv.cvtcolor(image, cv.color_bgr2gray)

kernel = cv.getstructuringelement(cv.morph_rect,(15

,15))

dst = cv.morphologyex(gray, cv.morph_blackhat, kernel)

cimage = np.array(gray.shape, np.uint8)

cimage =

100 dst = cv.add(dst, cimage)

# 增加亮度

cv.imshow(

"black_hat"

, dst)

defhat_binary_demo

(image)

: gray = cv.cvtcolor(image, cv.color_bgr2gray)

ret, binary = cv.threshold(gray,0,

255, cv.thresh_binary | cv.thresh_otsu)

kernel = cv.getstructuringelement(cv.morph_rect,(15

,15))

dst = cv.morphologyex(binary, cv.morph_tophat, kernel)

cv.imshow(

"hat"

, dst)

defgradient1_demo

(image)

: gray = cv.cvtcolor(image, cv.color_bgr2gray)

ret, binary = cv.threshold(gray,0,

255, cv.thresh_binary | cv.thresh_otsu)

kernel = cv.getstructuringelement(cv.morph_rect,(3

,3))

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

cv.imshow(

"hat"

, dst)

defgradient2_demo

(image)

: kernel = cv.getstructuringelement(cv.morph_rect,(3

,3))

dm = cv.dilate(image, kernel)

em = cv.erode(image, kernel)

dst1 = cv.subtract(image, em)

# internal gradient

dst2 = cv.subtract(dm, image)

# external gradient

cv.imshow(

"internal"

, dst1)

cv.imshow(

"external"

, dst2)

# 讀取

# src = cv.imread("d:\python\projects\opencv_toturial\images\lena.png")

# 建立opencv的gui視窗

# cv.namedwindow("input image", cv.window_autosize)

# 將放入指定名字的視窗中顯示出來

# cv.imshow("input image", src)

# top_hat_demo(src)

# black_hat_demo(src)

src2 = cv.imread(

"d:\python\projects\opencv_toturial\images\morph00.png"

)cv.imshow(

"input image"

, src2)

# hat_binary_demo(src2)

# gradient1_demo(src2)

gradient2_demo(src2)

# 設定waitkey中的delay為0,程式會等待使用者操作後關閉視窗

cv.waitkey(

0)頂帽操作結果:

黑帽操作結果:

頂帽對二值影象操作結果:

黑帽對二值影象操作結果:

梯度影象結果:

內梯度和外梯度:

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

一 頂帽 又稱禮帽,是原始影象與進行開運算之後得到的影象的差。因為開運算到來的結果是放大了裂痕或者區域性低亮度的區域,因此,從原圖中減去運算後的圖,得到的效果圖突出了比原圖輪廓周圍的區域更明亮的區域,且這一操作和選擇的核的大小相關。頂帽運算往往用來分離比鄰近點亮一些的斑塊。當一幅影象具有大幅的背景的...

形態學處理梯度 頂帽 黑帽

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

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

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