网络编程
位置:首页>> 网络编程>> 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
投稿

猜你喜欢

  • 在本文中,我将说明如何用SQL Server的工具来优化数据库索引的使用,本文还涉及到有关索引的一般性知识。 关于索引的常识 影响到数据
  • 深底色风格的页面设计很受欢迎,它可以创造出别致优雅、极富创造力的效果。深底色设计适用于许多网站类型,但并非所有。这种风格应该在恰当的条件下使
  • 函数javascript函数相信大家都写过不少了,所以我们这里只是简单介绍一下.创建函数:function f(x) {........}v
  • 前提:因为本文主要围绕着在thinkPHP5中使用redis的,所以关于redis的安装就不特意说明了,不过在这稍微提醒一下,安装完redi
  • 脚本调试第一步:设置中断(鼠标左键点击)第二步:输入中断条件(可选功能,鼠标右键点击红点)第三步:触发中断(当符合条件是,中断被触发)出现中
  • <?php echo "<br/>数值强制转换:"; $string="2a";
  • 偶然在Google发现了他们的用户体验设计原则,因此翻译作一下记录。1.以人为本 —他们的生活、他们的工作和他们的梦想2.珍惜每一毫秒的时间
  • 在 JavaScript 中,可以用 instanceof 来判断一个对象是不是某个类或其子类的实例。比如:// 代码 
  • 增强的toggleClass()1.toggleClass也可以和addClass一样,用空格分隔多个class名称了。.toggleCla
  • sql exist的妙用create table b(a varchar(10),b varchar(10),c varchar(10))i
  •  在WEB2.0 网页充斥的年代,身边无时无刻都听到这样的声音:“拒绝海报式设计,要做有用的设计,要简洁,要清爽,要大气”产品经理
  • 一个不错的网页拾色器也叫调色版,请看截图:当想要更多颜色时点击“其它颜色...”此时将调用系统自带的那个颜色选择框:注意:只有把〈scrip
  • 99bill: 1.md5.asp 代码如下:<% '''''''&
  • 本讲的内容是使用ASP的ActiveX Server Components(组件),说实话下面的内置组件我们用的很少。一、 Browser
  • 概要:本文主要描述XHTML中相对定位和绝对定位各自的本质、用法、区别和两者之间的关系。以及使用CSS的Left、Right、Top、Bot
  • A.截取从字符串左边开始N个字符 Declare @S1 varchar(100) Select @S1='http://www.x
  • 本文将演示如何使用SQL 7.0服务器的Enterprise Manager创建、配置一个示例数据库。我们还会演示如何增加具有合适权限的用户
  • 今天想围绕“产品交互设计”说说一些我们的想法,一说到产品设计,我想在坐的各位脑海里肯定联想到了很多表单设计、导航设计、界面布局等等,但是今天
  • 近日在月影的blog上找到一段代码。看了老半天没明白什么意思,倍受打击!不死心,于是仔细分析思考了好几次,才明白过来这段函数的意义。js果然
  • 今天,在完成一个小的python习题,习题的主要内容是读取一个帮助模块,并保存到本地文件。知道是用pydoc进行模块的读取,但是在windo
手机版 网络编程 asp之家 www.aspxhome.com