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

 更新时间:2023年05月16日 09:21:05   作者:袁袁袁袁满  
Python数据开发工作时偶尔会要求对图片做边框线检查和图片中的直线,本文为大家整理了相关的实现方法,非常实用,建议有需要的小伙伴收藏一下

安装模块

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

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实现表格边框线检测的文章就介绍到这了,更多相关Python Opencv边框线检测内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于python实现删除指定文件类型

    基于python实现删除指定文件类型

    这篇文章主要介绍了基于python实现删除指定文件类型,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • 从numpy数组中取出满足条件的元素示例

    从numpy数组中取出满足条件的元素示例

    今天小编就为大家分享一篇从numpy数组中取出满足条件的元素示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Python标准库os常用函数和属性详解

    Python标准库os常用函数和属性详解

    os模块是Python标准库中的一个用于访问操作系统相关功能的模块,os模块提供了一种可移植的使用操作系统功能的方法,本文给大家介绍下 OS标准库常用函数和属性,感兴趣的朋友跟随小编一起看看吧
    2022-11-11
  • Python2手动安装更新pip过程实例解析

    Python2手动安装更新pip过程实例解析

    这篇文章主要介绍了Python2手动安装更新pip过程实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • python基础入门学习笔记(Python环境搭建)

    python基础入门学习笔记(Python环境搭建)

    这篇文章主要介绍了python基础入门学习笔记,这是开启学习python基础知识的第一篇,夯实Python基础,才能走的更远,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • Python读取多列数据以及用matplotlib制作图表方法实例

    Python读取多列数据以及用matplotlib制作图表方法实例

    这篇文章主要给大家介绍了关于Python读取多列数据以及用matplotlib制作图表的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Python api构建tensorrt加速模型的步骤详解

    Python api构建tensorrt加速模型的步骤详解

    小编个人认为python比c++更容易读并且已经有很多包装很好的科学运算库(numpy,scikit等),今天通过本文给大家分享Python api构建tensorrt加速模型的步骤,感兴趣的朋友一起看看吧
    2021-09-09
  • Python中Pytest测试框架的fixture使用详解

    Python中Pytest测试框架的fixture使用详解

    这篇文章主要介绍了Python中Pytest测试框架的fixture使用详解,Pytest的fixture的目的是提供一个测试的基线,在此基线基础上,可以更可靠的进行重复测试,需要的朋友可以参考下
    2023-08-08
  • 使用Python获取并处理IP的类型及格式方法

    使用Python获取并处理IP的类型及格式方法

    今天小编就为大家分享一篇使用Python获取并处理IP的类型及格式方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • 在django项目中,如何单独运行某个python文件

    在django项目中,如何单独运行某个python文件

    这篇文章主要介绍了在django项目中单独运行某个python文件的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04

最新评论