python识别图片中的文本保存到word中
python可以使用第三方库pytesseract实现图像的文本识别,并将识别的结果保存到word中,代码本生不复杂pytesseract环境有点麻烦这里整理总结一下
一、简介
Tesseract是一个 由HP实验室开发 由Google维护的开源的光学字符识别(OCR)引擎,可以在 Apache 2.0 许可下获得。它可以直接使用,或者(对于程序员)使用 API 从图像中提取输入,包括手写的或打印的文本。
二、包安装
- pip install pytesseract
三、代码
- import pytesseract
- from PIL import Image
- from docx import Document
- def convert_image_to_editable_docx(image_file, docx_file):
- # 读取图片并进行OCR识别
- image = Image.open(image_file)
- # 使用pytesseract调用image_to_string方法进行识别,传入要识别的图片,lang='chi_sim'是设置为中文识别,
- text = pytesseract.image_to_string(image, lang='chi_sim')
- # 创建Word文档并插入文本
- doc = Document()
- doc.add_paragraph(text)
- doc.save(docx_file)
- # 示例用法
- input_image = "1.png" # 输入图片文件路径
- output_docx = "output.docx" # 输出Word文档路径
- convert_image_to_editable_docx(input_image, output_docx)
四、Tesseract的常用网址
下载地址:https://digi.bib.uni-mannheim.de/tesseract/
官方网站:https://github.com/tesseract-ocr/tesseract
官方文档:https://github.com/tesseract-ocr/tessdoc
语言包地址:https://github.com/tesseract-ocr/tessdata
语言包国内地址:https://gitcode.com/mirrors/tesseract-ocr/tessdata/tree/main?utm_source=csdn_github_accelerator&isLogin=1
五、安装
我下载的是:tesseract-ocr-w64-setup-v5.1.0.20220510.exe
我的安装地址是:D:\Program Files\Tesseract-OCR
六、设置环境变量
path中添加
新增:TESSDATA_PREFIX
下载语言包:语言包国内地址:https://gitcode.com/mirrors/tesseract-ocr/tessdata/tree/main?utm_source=csdn_github_accelerator&isLogin=1
下载如下这几个包,放到D:\Program Files\Tesseract-OCR\tessdata
七、验证环境变量
1.查看是否安装成功
打开cmd,输入tesseract -v回车,若显示版本号即为安装成功。
2.查看已经安装的语言
在cmd中输入tesseract --list-langs回车,若显示版本号即为安装成功。
八、效果
1.png图片
识别后的效果
python识别图片中的文本保存到word中的更多相关文章
- pyspider爬一批文章保存到word中
最近一直在爬新闻,对于新闻爬取的套路还是比较熟悉的.一个群友发布了一个爬文章入word的任务,我果断接单,自我挑战一下,更何况完成任务还有赏金,哈哈. 任务大概是这样的,有一个文章列表[http:// ...
- PHP操作:将数据库中的数据保存到Word、Excel中。
1.首先要把word.excel表放到文件的根目录下 2.定义了一个word类 <?php class word { function start() { ob_start(); ob_star ...
- 1.scrapy爬取的数据保存到es中
先建立es的mapping,也就是建立在es中建立一个空的Index,代码如下:执行后就会在es建lagou 这个index. from datetime import datetime fr ...
- ffmpeg从AVFrame取出yuv数据到保存到char*中
ffmpeg从AVFrame取出yuv数据到保存到char*中 很多人一直不知道怎么利用ffmpeg从AVFrame取出yuv数据到保存到char*中,下面代码将yuv420p和yuv422p的数 ...
- 将数字n转换为字符串并保存到s中
将数字n转换为字符串并保存到s中 参考 C程序设计语言 #include <stdio.h> #include <string.h> //reverse函数: 倒置字符串s中各 ...
- Android把图片保存到SQLite中
1.bitmap保存到SQLite 中 数据格式:Blob db.execSQL("Create table " + TABLE_NAME + "( _id INTEGE ...
- c# 抓取和解析网页,并将table数据保存到datatable中(其他格式也可以,自己去修改)
使用HtmlAgilityPack 基础请参考这篇博客:https://www.cnblogs.com/fishyues/p/10232822.html 下面是根据抓取的页面string 来解析并保存 ...
- Flask实战第43天:把图片验证码和短信验证码保存到memcached中
前面我们已经获取到图片验证码和短信验证码,但是我们还没有把它们保存起来.同样的,我们和之前的邮箱验证码一样,保存到memcached中 编辑commom.vews.py .. from utils i ...
- 【redis,1】java操作redis: 将string、list、map、自己定义的对象保存到redis中
一.操作string .list .map 对象 1.引入jar: jedis-2.1.0.jar 2.代码 /** * @param args */ public s ...
- Java实现Qt的SIGNAL-SLOT机制(保存到Map中,从而将它们关联起来,收到信号进行解析,最后反射调用)
SIGNAL-SLOT是Qt的一大特色,使用起来十分方便.在传统的AWT和Swing编程中,我们都是为要在 监听的对象上添加Listener监听器.被监听对象中保存有Listener的列表,当相关事件 ...
随机推荐
- 【C++开源库】Windows 下编译 libcurl 库
亲测可用: https://codeantenna.com/a/pJaN3omqjp What is libcurl ? libcurl 是一个跨平台的网络协议库,支持 http, https, ft ...
- HDU-3032--Nim or not Nim?(博弈+SG打表)
题目分析: 这是一个经典的Multi-SG游戏的问题. 相较于普通的Nim游戏,该游戏仅仅是多了拆成两堆这样的一个状态.即多了一个SG(x+y)的过程. 而根据SG定理,SG(x+y)这个游戏的结果可 ...
- Android NativeCrash 捕获与解析
Android 开发中,NE一直是不可忽略却又异常难解的一个问题,原因是这里面涉及到了跨端开发和分析,需要同时熟悉 Java,C&C++,并且需要熟悉 NDK开发,并且解决起来不像 Java异 ...
- 二、redis主从环境搭建
系列导航 一.redis单例安装(linux) 二.redis主从环境搭建 三.redis集群搭建 四.redis增加密码验证 五.java操作redis 环境:centos7需要的安装包: redi ...
- 在虚拟机(Linux)中Docker中部署Nginx成功,但是在宿主机无法访问Nginx站点?
1.问题 本文是基于黑马程序员Docker基础--常见命令一课中部署Nginx时遇到的问题作出解答. 在虚拟机(Linux)中Docker中部署Nginx成功,但是在宿主机无法访问Nginx站点 如图 ...
- win11不改时区,安装 android 子系统,运行android app
win11开启虚拟机平台 下载安卓子系统 打开https://store.rg-adguard.net , 在URL中输入:https://www.microsoft.com/store/produc ...
- MySQL为什么不推荐使用in
有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准https://blog.zysicyj.top 首发博客地址 系列文章地址 当使用IN语句时,MySQL可能会遇到以下问题: ...
- Jrebel与Xrebel教学
简介 JRebel和XRebel是两个非常有用的工具,可以显著提升Java开发人员的生产力和应用程序性能. JRebel是一个强大的Java开发工具,它允许开发人员在不重新启动应用程序的情况下进行代码 ...
- [转帖]Docker资源(CPU/内存/磁盘IO/GPU)限制与分配指南
https://zhuanlan.zhihu.com/p/417472115 什么是cgroup? cgroups其名称源自控制组群(control groups)的简写,是Linux内核的一个功能, ...
- Python学习之十八_django的学习(二)
Python学习之十八_django的学习(二) 前言 前面学习了基本的django的使用. 这里想着稍微深入一点学习templates 以及进行级联的路由展示. 修改配置文件 要想使用 templa ...