1. 程式人生 > 程式設計 >opencv 形態學變換(開運算,閉運算,梯度運算)

opencv 形態學變換(開運算,閉運算,梯度運算)

形態學裡把腐蝕和膨脹單獨拿了出來,其他操作(保括膨脹和腐蝕的組合操作)都叫形態學變換。
opencv裡有包:cv2.morphologyEx()
morphology :譯文 形態學
使用python +opencv講解

開運算

開運算:對影象先進行腐蝕,然後對腐蝕後的圖進行膨脹

opencv 形態學變換(開運算,閉運算,梯度運算)

opencv 形態學變換(開運算,閉運算,梯度運算)

morphologyEx
運算結果=cv2.morphologyEx(源影象img,cv2.MORPH_OPEN,卷積核k)
cv2.MORPH_OPEN:開運算

import cv2
import numpy as np
o=cv2.imread("opening.bmp",cv2.IMREAD_UNCHANGED)
k=np.ones((10,10),np.uint8)
r=cv2.morphologyEx(o,k)
cv2.imshow("original",o)
cv2.imshow("result",r)
cv2.waitKey()
cv2.destroyAllWindows()

opencv 形態學變換(開運算,閉運算,梯度運算)

閉運算

對影象進行先膨脹,再腐蝕。
有助於關閉前景物體上的小孔,或者小黑點。

opencv 形態學變換(開運算,閉運算,梯度運算)

morphologyEx
運算結果=cv2.morphologyEx(源影象img,cv2.MORPH_CLOSE,卷積核k)
cv2.MORPH_CLOSE:閉運算

合理選擇卷積核大小,太小了無法去除前景圖的黑點

import cv2
import numpy as np
o=cv2.imread("closing.bmp",r)
cv2.waitKey()
cv2.destroyAllWindows()

opencv 形態學變換(開運算,閉運算,梯度運算)

梯度運算

對二值影象分別進行膨脹和腐蝕操作。
然後膨脹影象-腐蝕影象=結果
(畫素相減)0-0=0,1-1=0,1-0=1

opencv 形態學變換(開運算,閉運算,梯度運算)

運算結果=cv2.morphologyEx(源影象img,cv2.MORPH_GRADIENT,卷積核k)
cv2.MORPH_GRADIENT:閉運算

import cv2
import numpy as np
o=cv2.imread("gradient.bmp",cv2.IMREAD_UNCHANGED)
k=np.ones((5,5),r)
cv2.waitKey()
cv2.destroyAllWindows()

opencv 形態學變換(開運算,閉運算,梯度運算)

到此這篇關於opencv 形態學變換(開運算,閉運算,梯度運算)的文章就介紹到這了,更多相關opencv 形態學變換內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!