网络编程
位置:首页>> 网络编程>> Python编程>> Python+Opencv实现表格边框线检测

Python+Opencv实现表格边框线检测

作者:袁袁袁袁满  发布时间:2023-08-11 04:55:14 

标签:Python,Opencv,检测

安装模块

下面需要用模块,先安装一下:

pip install numpy
pip install opencv-python==4.5.5.64
pip install opencv-python install "opencv-python-headless<4.3"

1. 判断图片中是否有表格

该示例代码使用边缘检测和霍夫变换提取图片中的直线,然后根据直线数量来判断是否有表格。这只是一个简单的示例,具体的判断方法和算法需要根据具体情况进行调整和优化。

import numpy as np
import cv2

# 加载图片
img = cv2.imread(r'E:\test1.png') # 注意路径中不能有中文

# 转为灰度图
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 进行边缘检测
edges = cv2.Canny(gray, 50, 150, apertureSize=3)

# 进行霍夫变换,提取直线
lines = cv2.HoughLinesP(edges, 1, np.pi/180, threshold=100, minLineLength=100, maxLineGap=10)

# 统计直线数量,判断是否有表格
if len(lines) > 10:
   print('图片中有表格')
else:
   print('图片中没有表格')

2. 提取图片中的直线

该示例代码使用Canny边缘检测和霍夫变换提取图片中的直线,并使用cv2.line函数绘制直线。您可以根据需要调整边缘检测和霍夫变换的参数,以获得更好的结果。此外,该示例代码仅绘制直线,如果需要识别表格边框线的坐标和位置,可以使用霍夫变换的输出结果进行进一步处理。

import numpy as np
import cv2

# 加载图片
img = cv2.imread(r'E:\test1.png') # 注意路径中不能有中文

# 转为灰度图
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 进行边缘检测
edges = cv2.Canny(gray, 50, 150, apertureSize=3)

# 进行霍夫变换,提取直线
lines = cv2.HoughLinesP(edges, 1, np.pi/180, threshold=100, minLineLength=100, maxLineGap=10)

# 绘制直线
for line in lines:
   x1, y1, x2, y2 = line[0]
   cv2.line(img, (x1, y1), (x2, y2), (0, 255, 0), 2)

# 显示结果图片
cv2.imshow('result', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

运行结果如下所示:

Python+Opencv实现表格边框线检测

来源:https://blog.csdn.net/yuan2019035055/article/details/130401879

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com