形态学图像处理
数学形态学 (1964)
铁矿 岩相定量分析 Hit or miss
基础知识
集合论中的概念
- 集合
- 元素
- 集合和元素的关系
- 集合关系
- 子集
- 并集
- 交集
(互斥 or 不相容)
- 补集
- 差集
- 子集
- 位移
用 位移: - 映像
的映像
结构元
用于探测图像的小集合或子图
- 原点(可以包括在结构元中,也可以不)
- 对称且未显示原点,假定在对称中心
- 对图像操作时要求结构元素是矩阵,添加最少的背景元素实现
python
# 1. 矩形结构元 (MORPH_RECT)
rectse = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5))
# 2. 十字/菱形结构元 (MORPH_CROSS)
crose = cv2.getStructuringElement(cv2.MORPH_CROSS, (5, 5))
# 3. 椭圆/圆形结构元 (MORPH_ELLIPSE)
ese = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5, 5))膨胀和腐蚀
膨胀 dilate
A 用 B 来膨胀:
腐蚀 erosion
A 用 B 来腐蚀:
OpenCV
python
cv2.dilate(src, kernel, anchor=(-1,-1),iterations=1,borderType=cv2.BORDER_CONSTANT) # or erode开操作和闭操作
开操作 opening
在边界内转动
闭操作 close
在边界外转动

OpenCV
python
cv2.morphologyEx(src, op, kernel, anchor=(-1,-1), iteration=1)击中或击不中变换
要求: 结构元对象间不相交
python
cv2.morphologyEx(src,cv2.MORPH_HITMISS,kernel,anchor=(-1,-1))- kernel: 前景1 背景-1 任意0 (np.int32)
基本的形态学算法
边界提取:
区域填充:
给定区域内一点,采用种子填充
对于多个区域填充时,需要指定初始点

细化:

- 执行一遍后还要继续细化,直到结果不发生变化
联通区域提取

时迭代结束
凸壳 (Convex Hull)
- 任意集合 S 的凸壳是包含 S 的最小凸集

时迭代收敛, - A 的凸壳
灰度级图像扩展
- 表示
- 输入图像
- 结构元素
- 输入图像
- 膨胀
- 腐蚀
- 开操作: 球在下侧滚动,去除较小的明亮细节
- 闭操作: 球在上侧滚动,去除较小的暗细节
基本形态学算法
- 形态学平滑
- 形态学梯度
- 顶帽变换 (亮背景上的暗物体)
- 底帽变换 (亮背景上的暗物体)
- 粒度测定
- 采用尺寸逐渐增大的结构元素对图像进行开运算;
- 计算原始图像与各次开运算结果之间的差值图像;
- 对差值图像进行归一化处理,根据归一化结果绘制颗粒尺寸分布。
- 纹理分割