1.基本概念
-
腐蚀(erode) 用最小值取代中心像素。膨胀过后黑色增加。
-
膨胀(dilate) 用最大值取代中心像素。膨胀过后白色增加。
-
开操作(open) 开操作 = 腐蚀 + 膨胀,去除黑色背景下的白色小块
-
闭操作(close) 闭操作 = 膨胀 + 腐蚀,去除白色背景下的黑色小块
-
顶帽(tophat) 原图像与开操作之间的差值图像,获得开操作去掉的白色小块
-
黑帽(blackhat) 闭操作与原图像之间的差值图像,获得闭操作去掉的黑色小块
-
形态学梯度(gradient)
①基本梯度:膨胀后的图像减去腐蚀后的图像得到的差值图像,openCV内置
②内部梯度:原图像减去腐蚀后的图像得到的差值图像
③外部梯度:膨胀后的图像减去原图像得到的差值图像
2.API 介绍
腐蚀
cv2.erode(src: Any, kernel: Any, dst: Any = None, anchor: Any = None, iterations: Any = None, borderType: Any = None, borderValue: Any = None)
膨胀
cv2.dilate(src: Any, kernel: Any, dst: Any = None, anchor: Any = None, iterations: Any = None, borderType: Any = None, borderValue: Any = None)
形态学其他操作
cv2.morphologyEx(src: Any, op: Any, kernel: Any, dst: Any = None, anchor: Any = None, iterations: Any = None, borderType: Any = None, borderValue: Any = None)
src: 图片
kernel: 核,可由 cv2.getStructuringElement()得到
op: 形态学操作类型
类型名称 | 名字 |
---|---|
开操作 | cv2.MORPH_OPEN |
闭操作 | cv2.MORPH_CLOSE |
顶帽 | cv2.MORPH_TOPHAT |
黑帽 | cv2.MORPH_BLACKHAT |
基本梯度 | cv2.MORPH_GRADIENT |
3.代码示例
4.结果展示
原图和腐蚀后:
原图和膨胀后:
原图与开操作后:
原图与闭操作后: