骨骼提取(图象细化 / image thinning)
这是一种形态学处理,我在提取手写笔迹的骨骼的时候用到了,因为之间简单的开闭运算的话,容易破坏图像的结构连通性。而骨骼提取则会在保证结构连通性的前提下,细化图像。
API调用
在scikit-image 包有实现,使用方法如下:
from skimage import morphology
import cv2
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
_, img_bin = cv2.threshold(img_gray, 100, 255, cv2.THRESH_BINARY_INV)
img_bin[img_bin == 255] = 1
img_skeleton = morphology.skeletonize(img_bin)
img = img_skeleton.astype(np.uint8) * 255
应用
- 笔迹细化:我在识别数学公式的时候,识别经常会将加号和除号混淆,所以对公式图像进行了细化处理,让除号的两点尽可能的分开,不被识别成加号。有效果,但是不大。
膨胀(dilate)
腐蚀(erode)
开运算 -> 白顶帽变换
闭运算 -> 黑顶帽变换
|