从图像中提取表结构

chh*_*ing 0 opencv

我有一堆像这样的图像表样本

从图像中提取表结构的好方法是什么?我只对提取直线感兴趣.

我一直在玩OpenCV Finding Contours代码示例,结果很有希望.我只是想知道是否有更好的方法?

chh*_*ing 5

OpenCV有一种检测线段的好方法.这是python中的代码片段:

import math
import numpy as np
import cv2

img = cv2.imread('page2.png')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

lsd = cv2.createLineSegmentDetector(0)
dlines = lsd.detect(gray)

for dline in dlines[0]:
    x0 = int(round(dline[0][0]))
    y0 = int(round(dline[0][1]))
    x1 = int(round(dline[0][2]))
    y1 = int(round(dline[0][3]))
    cv2.line(img, (x0, y0), (x1,y1), 255, 1, cv2.LINE_AA)

    # print line segment length
    a = (x0-x1) * (x0-x1)
    b = (y0-y1) * (y0-y1)
    c = a + b
    print(math.sqrt(c))

cv2.imwrite('page2_lines.png', img)
Run Code Online (Sandbox Code Playgroud)