python - 表单处理 - 检测框以分隔部分

标签 python opencv

我正在开发一个桌面应用程序,它将采用手写形式(一个示例是 here ),从中读取数字,并将它们输入到 csv 文件中。

我正在使用模板匹配算法来定位每个标题并返回坐标,然后我使用这些坐标沿 y 轴切掉相关 block ,以便我的程序稍后可以读取它。我遇到的问题是如何告诉算法何时停止裁剪。

我需要帮助的地方:我设计的表格在每个部分周围都有黑框。理论是,模板在表单上定位后,我将有一个函数接收模板所在位置的坐标(即“日期”列在 255,322,465,462),然后找到最近的最底角(黑框)到该部分并返回坐标。

我对图像处理及其行话真的很陌生,所以我希望得到一些关于如何执行这个理论的建议,例如可能有助于该过程的 opencv 函数、类似项目的示例、我可能需要谷歌搜索哪些术语更多信息(这种类型的图像处理是否有特定名称?)等。

最佳答案

Opencv python 中有 Connected Components 功能,您将在其中获取每个单独的框,稍后您可以过滤掉您需要的框。
下面是示例代码

img = cv2.imread('form.jpg', 0)
img = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)[1]  # ensure binary
ret, labels = cv2.connectedComponents(img)

您可以指定参数连接来检查 4 路或 8 路(默认)连接。不同的是,4路连接只检查顶部、底部、左侧和右侧像素,看它们是否连接; 8路检查八个相邻像素中的任何一个是否连接

关于python - 表单处理 - 检测框以分隔部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57773057/

相关文章:

python - 如何在 Windows 上模拟 socket.socketpair

python - 从 python 和字符串连接运行 shell 命令

javascript - 如何从 jQuery ajax 调用返回和使用字符串数组?

opencv - Hough Lines P - 如何知道是否没有检测到线?

python - Opencv 提取最大感兴趣区域

c++ - OpenCV - 缺少调试 DLL 库

Python,如何删除文件中的工作?

python - 如何使用 OpenCV 检测物体的边缘

opencv - tesseract,访问 Pix 的像素

Python ctypes对齐数据结构