示例:细化和骨架化
使用
thin 和
skeleton 将图像中的对象变换为一组线,这组线大体上沿每个对象的中心行进。
与细化操作不同,skeleton 会保持输入对象的尺寸。骨架的端点一直延伸至输入对象的边界。
thin
该函数首先会基于阈值 b 对输入图像进行二值化处理。输出是强度为 1 的构造线或弧以及强度为 0 的背景像素的二值图像。
1. 创建矩形框图像:
2. 将阈值为 1 的细化函数应用于矩形框:
(s1_thin.bmp)
细化矩形会产生一条线,该线逼近矩形的中轴。
3. 读入一个包含字母 D 和一个句点的图像,然后应用阈值为 128 的细化函数:
(d_bw.bmp) | (d_bw_thin.bmp) |
细化应用用于光学字符识别技术中。细化保持了图像中对象的基本形状和结构。
4. 读入一个较为复杂的图像,然后应用阈值为 128 的细化函数:
(pinetree.bmp) | (pinetree_thin_b128.bmp) |
skeleton
1. 将 skeleton 函数应用于图像 M,无需指定可选阈值自变量 b:
(pinetree.bmp) | (pinetree_skltn.bmp) |
2. 指定阈值 b,然后将 skeleton 函数应用于同一图像:
(pinetree.bmp) | (pinetree_skltn_b1.bmp) |
3. 将阈值为 1 的函数 skeleton 应用于原始图像 S:
(s1_thin.bmp) | (s2_skltn.bmp) |
skeleton 函数首先会基于阈值 b 对输入图像进行二值化处理。输出是强度为 1 的构造线或弧以及强度为 0 的背景像素的二值图像。
4. 读入一个新图像,然后应用阈值为 128 的 skeleton 函数:
(flower.bmp) | (flower_skltn_b128.bmp) |
5. 使用阈值 128 来骨架化松树图像:
(pinetree.bmp) | (pinetree_skltn_b128) |