数学形态学操作可以分为二值形态学和灰度形态学,灰度形态学由二值形态学扩展而来。数学形态学有2个基本的运算,即腐蚀和膨胀,而腐蚀和膨胀通过结合又形成了开运算和闭运算。
开运算就是先腐蚀再膨胀
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, kernelSize)
opening = cv2.morphologyEx(gray, cv2.MORPH_OPEN, kernel)
1、开运算能够除去孤立的小点,毛刺和小桥,而总的位置和形状不便。
2、开运算是一个基于几何运算的滤波器。
3、结构元素大小的不同将导致滤波效果的不同。
4、不同的结构元素的选择导致了不同的分割,即提取出不同的特征。
闭运算就是先膨胀再腐蚀
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, kernelSize)
closing = cv2.morphologyEx(gray, cv2.MORPH_CLOSE, kernel)
1、闭运算能够填平小湖(即小孔),弥合小裂缝,而总的位置和形状不变。
2、闭运算是通过填充图像的凹角来滤波图像的。
3、结构元素大小的不同将导致滤波效果的不同。
4、不同结构元素的选择导致了不同的分割。