opencv 形態(tài)學(xué)變換(開運算,閉運算,梯度運算)
形態(tài)學(xué)里把腐蝕和膨脹單獨拿了出來,其他操作(保括膨脹和腐蝕的組合操作)都叫形態(tài)學(xué)變換。
opencv里有包:cv2.morphologyEx()
morphology :譯文 形態(tài)學(xué)
使用python +opencv講解
開運算
開運算:對圖像先進行腐蝕,然后對腐蝕后的圖進行膨脹
morphologyEx
運算結(jié)果=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,cv2.MORPH_OPEN,k) cv2.imshow("original",o) cv2.imshow("result",r) cv2.waitKey() cv2.destroyAllWindows()
閉運算
對圖像進行先膨脹,再腐蝕。
有助于關(guān)閉前景物體上的小孔,或者小黑點。
morphologyEx
運算結(jié)果=cv2.morphologyEx(源圖像img,cv2.MORPH_CLOSE,卷積核k)
cv2.MORPH_CLOSE:閉運算
合理選擇卷積核大小,太小了無法去除前景圖的黑點
import cv2 import numpy as np o=cv2.imread("closing.bmp",cv2.IMREAD_UNCHANGED) k=np.ones((10,10),np.uint8) r=cv2.morphologyEx(o,cv2.MORPH_CLOSE,k) cv2.imshow("original",o) cv2.imshow("result",r) cv2.waitKey() cv2.destroyAllWindows()
梯度運算
對二值圖像分別進行膨脹和腐蝕操作。
然后膨脹圖像-腐蝕圖像=結(jié)果
(像素相減)0-0=0,1-1=0,1-0=1
運算結(jié)果=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),np.uint8) r=cv2.morphologyEx(o,cv2.MORPH_GRADIENT,k) cv2.imshow("original",o) cv2.imshow("result",r) cv2.waitKey() cv2.destroyAllWindows()
到此這篇關(guān)于opencv 形態(tài)學(xué)變換(開運算,閉運算,梯度運算)的文章就介紹到這了,更多相關(guān)opencv 形態(tài)學(xué)變換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python中的yield from語法快速學(xué)習(xí)
在本篇文章里小編給大家整理的是一篇關(guān)于python中的yield from語法快速學(xué)習(xí)相關(guān)內(nèi)容,有興趣的朋友們可以參考下。2020-11-11python中json格式數(shù)據(jù)輸出的簡單實現(xiàn)方法
下面小編就為大家?guī)硪黄猵ython中json格式數(shù)據(jù)輸出的簡單實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-10-10