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實現(xiàn)逆序輸出一個數(shù)字的示例講解
今天小編就為大家分享一篇python實現(xiàn)逆序輸出一個數(shù)字的示例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06Python 中 -m 的典型用法、原理解析與發(fā)展演變
這篇文章主要介紹了Python 中 -m 的典型用法、原理解析與發(fā)展演變,需要的朋友可以參考下2019-11-11python 最簡單的實現(xiàn)適配器設(shè)計模式的示例
這篇文章主要介紹了python 最簡單的實現(xiàn)適配器設(shè)計模式的示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06