Opencv 从图像中提取表结构
我有很多像这样的图片 从图像中提取表结构的好方法是什么?我只对提取直线感兴趣Opencv 从图像中提取表结构,opencv,Opencv,我有很多像这样的图片 从图像中提取表结构的好方法是什么?我只对提取直线感兴趣 我一直在玩弄代码示例,结果非常有希望。我只是想知道是否有更好的方法?OpenCV有一种很好的检测线段的方法。以下是python中的代码片段: import math import numpy as np import cv2 img = cv2.imread('page2.png') gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) lsd = cv2.createLineSe
我一直在玩弄代码示例,结果非常有希望。我只是想知道是否有更好的方法?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)
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)
请浏览我的Github存储库 所开发的代码通过保持空间坐标不变来检测表格并提取信息 代码检测表中的行,如下图所示。我希望它能解决你的问题。
下面显示了以表格形式提取的输出。请浏览我的Github存储库 所开发的代码通过保持空间坐标不变来检测表格并提取信息 代码检测表中的行,如下图所示。我希望它能解决你的问题。
以表格形式提取的输出如下图所示。您也可以尝试,根据最小y和最大x坐标(这里基本上是ROI矩形的两个对角)获取所有水平线和ROI,但结果非常糟糕。好吧,这很奇怪,如果我理解正确,你想只提取中间的表格,对吗?我只想提取水平线和垂直线的网格。在这种情况下,你也可以尝试。你也可以尝试,获取所有水平线,并基于最小y和最大x坐标(基本上是ROI矩形的两个对角)获得ROI我已经试过了,但结果很糟糕。好吧,这很奇怪,如果我理解正确,你想只提取中间的表吗?我只想提取水平线和垂直线的网格。在这种情况下,你也可以尝试。我想知道如何提取由代码创建的段。有什么建议吗?这没有给我表中所有的线段:(代码有什么快速修复方法吗?我想知道如何提取代码创建的线段。有什么建议吗?这没有给我表中所有的线段:(代码有什么快速修复方法吗?