从扫描图像中删除网格

Posted

技术标签:

【中文标题】从扫描图像中删除网格【英文标题】:Removing grid from scanned image 【发布时间】:2017-06-08 21:50:02 【问题描述】:

我必须识别手工填写的银行表格的文本。表格有一个网格,如图所示。我是图像处理的新手。我读了几篇关于手写识别的论文,并将去噪、二值化作为预处理任务。我现在想分割图像并使用神经网络识别字符。为了分割我想要摆脱网格的字符。

提前非常感谢您。

【问题讨论】:

SO 不是编码网站。请展示一些作品,以便我们帮助您做得更好。 @DYZ 我尝试在上面提供的图像上使用去噪、二值化和边缘检测。我不明白如何摆脱网格。任何见解都会有所帮助。 尝试腐蚀和膨胀运算符 【参考方案1】:

我有一个使用 OpenCV 的解决方案。

首先,我将图像反转:

ret,thresh2 = cv2.threshold(img,127,255,cv2.THRESH_BINARY_INV)

现在我进行了形态开运算

opening = cv2.morphologyEx(thresh2, cv2.MORPH_OPEN, k2)
cv2.imshow('opening', opening) 

您可以看到网格线已经消失。但也有一些角色的高处。所以为了填补空白,我执行了形态膨胀操作

dilate = cv2.morphologyEx(opening, cv2.MORPH_DILATE, k1)
cv2.imshow('dilation', dilate) 

您可以查看THIS LINK 了解更多形态学操作内核使用。

【讨论】:

@Soltius 嘿,知道如何让角色恢复到原始图像中的正常状态吗? 关闭而不是扩张带来了什么? @Soltius Closing 通常用于填充二进制图像内部的一些孔/斑点/间隙。 SEE HERE 当然这是它的一般使用方式,但我认为它在这里很有用。这取决于您使用的内核的大小和形状,但我用 (5,5) 矩形内核(而不是膨胀阶段)进行了尝试,它弥补了一些差距 :) @Soltius 完全正确!!!这就是我选择它的原因。我也尝试了不同的可能性

以上是关于从扫描图像中删除网格的主要内容,如果未能解决你的问题,请参考以下文章

如何在python中删除图像上的网格线?

如何将按钮或图像添加到道场网格

从 PyQt5 中的 QTableWidget 中删除单元格填充

捕获图像并动态添加到网格视图

从数据网格中删除行

React.js:如何从 ag 网格中删除行?