基於Python的Opencv學習

基於Python的Opencv學習第九天

今天延續上一篇博客爲大家講一下形態學運算裏面的梯度運算,禮帽操作和黑貓圖像處理。

一.梯度運算

梯度運算就是在原始圖像上,先經過膨脹操作得到膨脹圖像,然後經過腐蝕操作,得到腐蝕圖像,再利用得到的膨脹圖像減去腐蝕圖像得到的輪廓就是梯度操作。

梯度(image)=膨脹(image)-腐蝕(image)

梯度運算的結果是得到輪廓圖像
在這裏插入圖片描述
進行梯度運算時,我們需要調用函數morphologyEx()

result=cv2.morphologyEx(img,cv2.MORPH_GRADIENT,kernel)

具體參數和腐蝕操作參數含義一致,不做過多說明。

import cv2
import numpy as np
a=cv2.imread(r"C:\Users\LT010407\Desktop\2.jpg")
k=np.ones((5,5),np.uint8)
b=cv2.morphologyEx(a,cv2.MORPH_GRADIENT,k)
cv2.imshow("a",a)
cv2.imshow("b",b)

在這裏插入圖片描述
這就是進行梯度運算的代碼和結果。

二.禮帽操作

禮帽操作和梯度運算相似,通過原始圖像減去對原始圖像進行開運算後得到的開運算圖像,即得到禮貌圖像。

禮帽(image)=原始圖像(image)-開運算圖像(image)

禮帽操作的結果可以獲得噪聲圖像
在這裏插入圖片描述
在禮帽操作中需要調用函數morphologyEx()

result=cv2.morphologyEx(img,cv2.MORPH_TOPHAT,kernel)

這裏均調用了morphologyEx()函數,只是裏面一個固定的參數的變化。

import cv2
import numpy as np
a=cv2.imread(r"C:\Users\LT010407\Desktop\2.jpg")
k=np.ones((5,5),np.uint8)
b=cv2.morphologyEx(a,cv2.MORPH_TOPHAT,k)
cv2.imshow("a",a)
cv2.imshow("b",b)


在這裏插入圖片描述
這是代碼和結果,可以看到這幅圖像的噪聲還是很少的。

三.黑帽操作

和禮帽操作相似,黑帽操作是在原始圖像基礎上進行閉運算得到閉運算圖像,然後用閉運算圖像減去原始圖像得到黑帽圖像。

黑帽圖像(image)=閉運算圖像(image)-原始圖像(image)

得到圖像內部的小孔,或前景色中的小黑點

在這裏插入圖片描述
在黑帽操作中需要調用函數morphologyEx()

result=cv2.morphologyEx(img,cv2.MORPH_BLACKHAT,kernel)

這裏均調用了morphologyEx()函數,只是裏面一個固定的參數的變化。

import cv2
import numpy as np
a=cv2.imread(r"C:\Users\LT010407\Desktop\2.jpg")
k=np.ones((5,5),np.uint8)
b=cv2.morphologyEx(a,cv2.MORPH_BLACKHAT,k)
cv2.imshow("a",a)
cv2.imshow("b",b)


在這裏插入圖片描述
今天講了三個形態學操作,都是繼承了前一篇博客的morphologyEx()函數,具體參數解釋還得認真看一下上一篇博客。今天就到這裏,小夥伴們下一篇博客見(轉載註明出處)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章