基於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()函數,具體參數解釋還得認真看一下上一篇博客。今天就到這裏,小夥伴們下一篇博客見(轉載註明出處)