我想从一些任意照片图像识别表格结构,并以一些正式表示法存储它(让它成为HTML表格符号)。
现在要检测结构我想要检测线之间的交叉点,它们的类型(T型,X型或简单角),它们的方向以及它们在图像上的位置。在此之后,我将使用所有获得的信息进一步加入某些结构中的相邻十字架,并将此结构转换为正式表示。
通常,这些十字可以缩放和/或旋转。 也许有人可以帮助解决这个问题的方法?或者可能为整个任务推荐不同的方法?
到目前为止我所写的内容:
# -*- coding: utf-8 -*-
import cv2
import cv
import numpy
original = cv2.imread("/home/user/my_photo-1.jpg")
grayscale = cv2.cvtColor(original, cv2.COLOR_BGR2GRAY)
smoothed = cv2.GaussianBlur(grayscale, (5,5), 0)
cv2.imshow("original", original)
cv2.imshow("grayscale", grayscale)
binarized = cv2.adaptiveThreshold(grayscale, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY_INV, 7, 8)
binarized = cv2.Canny(grayscale, 50, 200)
cv2.imshow("binarized", binarized)
cv2.waitKey(0)
提前感谢任何回复/想法。
答案 0 :(得分:1)
您想要使用Hough变换。它将检测不同的线,您将获得方程式/方向。
另一种解决方案,可能更简单: