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()
运行结果如下所示:
来源: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