用OpenCV先去除边框线,以提升OCR准确率

在OpenCV的魔力下,我们如魔法师般巧妙地抹去表格的边框线,让文字如诗如画地跃然纸上。

e0c56a8fac7db8922a2521759981dde8.jpeg 首先,我们挥动魔杖,将五彩斑斓的图像转化为单一的灰度世界,如同将一幅绚丽的油画化为水墨画,通过`cv2.cvtColor()`函数的施展,我们实现了这一华丽的转变。


接着,我们施展边缘检测的法术,运用Canny边缘检测算法,如同在黑夜中点亮的繁星,清晰地勾勒出表格的边界,让我们一览无余地看到其轮廓。

然后,我们借助`cv2.findContours()`函数,探寻这些边缘背后的神秘轮廓,它们如同地图上的隐秘路线,引导我们深入未知的境地。

在这迷宫般的轮廓中,我们寻觅着真正的主角——表格的边框。这是一场人海中的寻觅,我们凭借面积、宽高比等线索,筛选出心中的目标。

随后,我们在原始图像上细细描绘这些筛选后的轮廓,如同在绘画一幅精美的图案,`cv2.drawContours()`函数如同我们的画笔,轻轻描绘,让轮廓在图像上跃然而出。

接着,我们用纯净的白色填充这些轮廓区域,如同用雪花覆盖大地,将那些烦人的表格线一一抹去,让图像呈现出清新脱俗的美感。

最后,我们将这处理过的图像交给Tesseract这位识画之人,让它为我们解读其中的文字奥秘。如同将一幅被迷雾笼罩的画卷交给识画之人,让真相大白于天下。

以下是这段美妙过程的代码诠释:


```python
import cv2
import numpy as np

# 读取图像,如同打开一幅尘封已久的画卷
image = cv2.imread('table_image.jpg')

# 将图像转化为灰度,如同将油画转化为水墨画
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 施展边缘检测的法术,寻找图像中的边缘
edges = cv2.Canny(gray, 50, 150, apertureSize=3)

# 寻找边缘背后的轮廓,如同探寻地图上的路线
contours, _ = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

# 在原始图像上描绘筛选后的轮廓,如同在绘画一幅精美的图案
for contour in contours:
x, y, w, h = cv2.boundingRect(contour)
cv2.rectangle(image, (x, y), (x + w, y + h), (255, 255, 255), -1)

# 保存处理后的图像,如同将一幅精美的画作妥善保存
cv2.imwrite('processed_image.jpg', image)

# 在这里,你可以添加Tesseract识别的代码
# 将处理过的图像交给Tesseract解读,如同将画卷交给识画之人
```
如此,我们便在OpenCV的引领下,如同魔法师般成功地抹去了表格中的边框线,让文字如诗如画地呈现在我们的眼前。

最后,用OCR接口,建议用金鸣表格文字识别系统,它是一款基于AI和OCR的表格文字识别软件,既可以将PDF直接转为word/excel,也可以通过OCR方案将PDF中的图片转为word/excel,她主要有以下优势:
一、采用超前AI技术,经深度学习,识别率高。
金鸣识别系统采用超前AI技术,程序经深度学习,识别精准,能有效解决传统文字识别软件对复杂图片的文字识别率低、效果差等弊端。
二、效果好,还原排版,识别后编辑内容少。
金鸣识别除了支持通用的文字识别和表格识别外,还支持高精结构还原、智能分段、保留印章和商标LOGO,同时支持近百种票据和证件结构化识别,功能强大,种类齐全丰富,基本上能满足各种不同需求的人群。
三、多人共用,多端通用,使用方便。
金鸣识别同时具备电脑网页版、客户端和移动端的APP、小程序,一个账户可通用各种不同的设备,既支持直接用扫描仪扫描识别,也支持用手机直接拍照识别,同时支持直接添加已有的图片或PDF进行识别,使用方便快捷。
四、支持大批量合并
支持上百张图片合并转到一个excel表中,或一个word文档里,word文档还支持分页合并和连续合并。这样可大大提高工作效率。
五、支持API接口
对于有编程技术的用户,我们提供了API接口,可以直接返回excel或json,以供您集成到自有的程序中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/830346.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

寝室快修|基于SprinBoot+vue的贵工程寝室快修小程序(源码+数据库+文档)

贵工程寝室快修目录 目录 基于SprinBootvue的贵工程寝室快修小程序 一、前言 二、系统设计 三、系统功能设计 1学生信息管理 2 在线报修管理 3公告信息管理 4论坛信息管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&a…

结构方程模型【SEM】:非线性、非正态、交互作用及分类变量分析

张老师(研究员),长期从事R语言结构方程模型、群落生态学、保护生物学、景观生态学和生态模型方面的研究和教学工作,已发表了多篇论文,拥有丰富的科研及实践经验。 利用结构方程模型建模往往遇到很多‘特殊’情况&…

CDA一级备考策略分享

但对于很多考生来说,没有备考经验,不知道应该如何备考?今天,我来指导大家应该如何备考,让大家充分准备,拿下CDA考试。在CDA考试大纲中为新考生讲解备考经验一下。 1、数据分析概述与职业操守、数据结构 考…

Excel 批量创建sheet页

参考资料 最巧妙的Excel批量创建工作表方法 一. 需求 ⏹有如下模板,现想根据提供的姓名,批量创建sheet页,要求每个sheet页拥有相同的模板 二. 通过透视表,批量创建sheet页面 ⏹如下图所示的步骤,创建透视表后&#…

人工 VS AGV无人搬运机器人,AGV赋能中国智能制造

agv 机器人作为智能制造的重要抓手,正在渗透到各个传统行业,成为我国制造业转型升级的焦点。未来,智能AGV将不仅仅是简单的把货物搬运到指定的位置,而是要把5G技术、大数据、物联网、云计算等贯穿于产品的设计中,让智能…

《动手学深度学习(Pytorch版)》Task03:线性神经网络——4.29打卡

《动手学深度学习(Pytorch版)》Task03:线性神经网络 线性回归基本元素线性模型损失函数随机梯度下降 正态分布与平方损失 线性回归的从零开始实现读取数据集初始化模型参数定义模型定义损失函数定义优化算法训练 线性回归的简洁实现读取数据集…

帕累托森林李朝政博士受聘「天工开物开源基金会」专家顾问

导语: 开源铸造了当前最前沿的科技引擎。开源驱动了软件生态,也以指数级速度驱动硬件生态。 3月中旬,天工开物开源基金会授予李朝政博士专家顾问,表彰他积极推动参与中国智能软件生态的建设,期待一起共筑未来新生态。…

manim

当安装Manim时,首先需要安装Manim库本身,然后安装一些依赖库和工具,以确保Manim可以正常运行。以下是合并后的安装步骤: 安装Manim和依赖的步骤: 1. 安装Manim 首先,安装Manim库。你可以使用以下命令在终…

Java面试题:什么是Java中的CompletableFuture及其优势?有哪些性能提升

CompletableFuture是Java 8引入的一个类,用于简化异步编程模型。它是Future接口的一个增强版,提供了更加丰富和灵活的操作,使得编写异步、非阻塞的代码变得更加容易。CompletableFuture的主要优势和性能提升体现在以下几个方面: …

Python_AI库 Pandas的时间序列操作详解

Python_AI库 Pandas的时间序列操作详解 本文默认读者具备以下技能: 熟悉python基础知识,vscode或其它编辑工具 了解pandas,matplotlib的基础操作 具备自主扩展学习能力 在数据分析和处理中,时间序列数据是一类常见且重要的数据类型。大量的…

cannot import name ‘img_as_ubyte‘

前提: pip install scikit-image 已经成功安装,我的版本是0.22.0.但 from skimage.util import img_as_ubyte 报错,加个util即可 from skimage.util import img_as_ubyte API调用详见官网: 官网链接

CSS实现各种优惠券效果

一、左半圆效果 <style style"text/css">.coupon {width: 240px;height: 100px;margin-top: 15px;background-color: #ff6347;-webkit-mask: radial-gradient(circle at left center, transparent 20px, red 20px); } </style><div class"coupon…

TruLens

文章目录 一、关于 TruLensHow it works 二、安装三、快速使用Get DataInCreate Vector StoreBuild RAG from scratchSet up feedback functions.Construct the appRun the app 一、关于 TruLens Evaluate and Track LLM Applications 官网&#xff1a;https://www.trulens.o…

linux,从零安装mysql 8.0.30 ,并且更新至mysql 8.0.36

前言&#xff1a; 系统使用的CentOS 7&#xff0c;系统默认最小安装。 一、基础配置 配置虚拟机IP&#xff0c;需要更改的内容&#xff0c;如下红框中 修改之后 至此&#xff0c;基础配置完成。注意&#xff1a;此处虚拟机网络适配器使用的是&#xff1a;桥接模式 二、软件…

掌握Lazada自养号测评技巧,轻松提升产品销量与排名

Lazada店铺销量不佳&#xff0c;时常让卖家们感到困扰。然而&#xff0c;仅仅感叹和自我安慰并不能解决问题。作为卖家&#xff0c;我们需要专注于打牢基础&#xff0c;尤其是要深入了解Lazada店铺测评的益处及其运用技巧。通过巧妙地结合运营策略和测评方法&#xff0c;我们可…

Zephyr storage存储子系统系统学习记录

一、Zephyr storage 存储子系统能做什么&#xff1f; 统一管理磁盘操作方便应用层使用存储&#xff0c;如格式化、读数据、写数据。 二、应用层操作 官方给的demo&#xff1a; https://github.com/zephyrproject-rtos/zephyr/blob/main/samples/subsys/nvs/src/main.c 序号…

Android常用命名大全

Android系统又太多自定义或者自制的命名工具&#xff0c;有很多工具有必要且很有用&#xff0c;所以有想法来把一些常用且实用的命令一一罗列出来供日后快速翻阅使用。 1、查看apk版本号&#xff08;windows&#xff09; ~\AppData\Local\Android\sdk\build-tools\25.0.3\aap…

Android --- 英文单引号用apos;替换报错:does not contain a valid string resource

<string name"SSSS_09_08_06_RES_12">Remove owner&apos;s digital key</string>报错信息如下&#xff1a; string/SSSS_MM_09_08_06_RES_12 does not contain a valid string resource在开发的过程中需要使用英文的单引号&#xff0c;度娘说用“#a…

Django框架之请求生命周期流程图

一、引言 WSGI、wsgiref、uwsgi三者是什么关系? WSGI是协议&#xff0c;小写的wsgiref和uwsgi是实现该协议的功能模块 缓存数据库 提前已经将你想要的数据准备好了&#xff0c;需要的时候直接拿就可以&#xff0c;提高了效率和响应时间。 eg:当你在修改你的数据的时候&…

vscode查看变量小技巧

vscode查看变量有3种方法 print()输出要查看的变量&#xff0c;此方法适用于所有编程软件安装jupyter&#xff0c;右键run in interactive window—在交互窗口运行&#xff0c;之后点击变量即可查看 通过调试查看&#xff0c;使用于大多编程软件。打断点&#xff0c;调试后会…