仅在一个方向上使用膨胀?

Fil*_*vić 6 python opencv computer-vision image-morphology dilation

这是我在 Stack Overflow 上的第一篇文章,如果问题没有得到足够的定义,我很抱歉。

我目前正在研究从图像中提取表格数据,我需要一种仅在垂直方向上扩展文本的方法,以便我可以获得清晰的列表示,用于进一步分割。

删除水平线和垂直线并按位转换图像后,我处于以下阶段:

膨胀和线提取后的当前状态

这个问题的理想目标是:

目标

有没有一种方法或算法对我的情况有帮助?

ndr*_*plz 6

cv2.dilate您只需使用适当的结构元素进行调用即可。

import cv2

pre_img = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)
h, w = pre_img.shape

kernel = cv2.getStructuringElement(cv2.MORPH_RECT, ksize=(1, 2 * h))

dilated = cv2.dilate(pre_img, kernel)

cv2.imshow('input', pre_img)
cv2.imshow('output', dilated)
cv2.waitKey(0)
Run Code Online (Sandbox Code Playgroud)

输入 输入图像

输出 输出图像

为了更好地可视化正在发生的事情:

blended = (pre_img.astype(float) + dilated.astype(float)) / 2
cv2.imshow('blended', blended.astype(np.uint8))
cv2.waitKey(0)
Run Code Online (Sandbox Code Playgroud)

混合 图像混合