python 图片识别_python识别图片文字

2023-11-01

滑稽研究所 9ac0640c454ef17421504d87a77eaa2c.gif

python识别图片文字

哈喽,大家好呀,我是滑稽君。大家在写论文时可能经常碰到无法复制文字的文章。明明找到了需要的内容却无法直接复制使用,这让我们十分苦恼。那么本期滑稽君就告诉大家如何使用python识别图片中的文字。

滑稽君整理了网上使用率最高的两种方法。

一是pytesseract+Tessseract-OCR进行图片识别。

二是调用百度文字识别提供的API进行图片文字的处理。

下面我将告诉大家这两种方法一些容易跳坑的地方。

0363fa8c193875d44cd78897bca91008.gif

视频讲解:

7156adc90916e45aa81ee9ca664c435d.gif ❂ pytesseract+Tessseract-OCR

第一种方法需要注意的地方是一些第三方库的下载,我们需要用到pytesseract库和pillow库,这两个库我们都可以在cmd中直接pip下载,需要注意的是我们还需额外下载一个文件——tesseract-ocr。下载这个文件之后我们直接安装注意不要修改他的默认路径(大神忽略)。一些小伙伴可能需要配置一下环境路径,滑稽君安装之后它自动帮我添加了,大家注意一下即可。

下载链接:

https://pan.baidu.com/s/1OL0g1MBzeijD23JN0UGC0Q

这个工具默认支持英文,我们需要下载支持中文的包,然后放在这个目录下。C:\Program Files (x86)\Tesseract-OCR\tessdata  里面已经有了支持英文的包是eng开头的,我们放入的支持中文的包是chi_sim开头的意思是中文简体。

接着我们需要在这个目录下找到图片中的最后一个文件,打开文件(用记事本即可)找到如图所示位置后进行如下修改。这个路径一般是通用的,这也是一开始为什么不修改默认路径的原因。当我们准备工作都完成后代码部分就比较简单了。

131e778edade853ca7e4d31264292254.png

27ec61e47ff8919b3355dd7b096964ca.png

源代码:

import pytesseractfrom PIL import Image pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files (x86)\Tesseract-OCR\tesseract.exe"text = pytesseract.image_to_string(Image.open('C:\\Users\\86157\\pysw.png'),lang="eng")#识别英文参数为  lang="eng"  中文为lang="chi_sim"   如果参数不对识别就会乱码。# 创建一个txt文件,文件名为mytxtfile,并向文件写入msgdef text_create(name, msg):    desktop_path = "C:\\Users\\86157\\Desktop\\"  # 新创建的txt文件的存放路径    full_path = desktop_path + name + '.txt'  # 也可以创建一个.doc的word文档    file = open(full_path, 'w')    file.write(msg)   #msg也就是下面的Hello world!    file.close()    text_create('saveworld',text)
❂ 调用百度文字识别提供的API

这个方法主要是使用百度文字识别提供的API接口,来完成对图片文字的识别。需要用到baidu-api这个第三方库,cmd中可以直接pip安装。我们需要去百度云免费申请一个百度云文字识别api的接口,获得你自己的APP_ID,API_KEY,SECRET_KEY。

源代码:

#-*- coding: UTF-8 -*-#前提是python已安装aip库--》pip install baidu-aip import osfrom aip import AipOcrimport jsonAPP_ID = '' #你的APP_IDAPI_KEY = '' #你的API_KEYSECRET_KEY = ''  #你的SECRET_KEYaipOcr = AipOcr(APP_ID, API_KEY, SECRET_KEY)os.chdir("")  #你需要转换的图片目录,大家自行替换。dirs = os.listdir()def get_file_content(filePath):    with open(filePath, 'rb') as fp:        return fp.read()options = {}options["language_type"] = "CHN_ENG"options["detect_direction"] = "true"options["detect_language"] = "true"options["probability"] = "true" print('开始处理,共'+str(len(dirs))+"张图片。")flag=0T = 0 #统计处理图片成功的数量for filePath in dirs:    if filePath.split('.')[-1]=='txt':continue    flag+=1    print('正在处理第'+str(flag)+'张图片')    try:        result = aipOcr.basicGeneral(get_file_content(filePath), options)    except BaseException as e:        print(e)    else:        try:            with open(filePath.split('.')[0]+'.txt','w',encoding='utf-8') as f:                for i in result['words_result']:                        f.write(i['words']+'\n')                T += 1        except BaseException as e :            print(e)        else:            print('处理完成')print('{}全部处理完成!{}'.format("="*30,"="*30))print('处理成功的图片有{}张,处理失败的图片有{}张'.format(T,len(dirs)-T))

效果图:

方法一:左边为滑稽君自制的图片,右边为识别之后转txt的效果。

可以看到中文识别正确率还说一点低的。英文识别的效果倒是还可以没有出现错误的情况,这里就不展示了。

1402c166943854a954171ee6a0b45890.png

方法二:左边为滑稽君自制的图片,右边为识别之后转txt的效果。

d9b68f8a050c8ffa76d6b41b80ed4f8b.png

可以看到第一种方法对图片中文字的识别准确率较第二种要差很多,特别是在中文的识别上。因此大家日常使用的话还是推荐第二种方法,还有就是下载安装文件和配置环境变量对小白来说不是那么友好。

第一种方法识别图片中文字,如果图片里有中英混杂的情况,就只能识别一种语言。而调用百度文字API的方法可以英文、中文、数字混合在一张图里识别,并且准确率高。前者可以单机识别,后者则是要求网络的。

本期素材来源:

https://blog.csdn.net/zhangshaohua1603/article/details/79722399https://blog.csdn.net/L141210113/article/details/88835914?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.compare&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.compare
fe427460ecd7894579fe1d0be31b2a08.gif ❂ END

两种方法都为大家整理完毕了,有什么问题欢迎私信滑稽君。

aefebd483a058a8519fc2ced421dd58b.png
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python 图片识别_python识别图片文字 的相关文章

  • 【Eclipse】Maven安装配置&Eclipse配置Maven插件

    文章目录 前言 一 下载安装Maven 二 配置Maven环境变量 三 修改Maven仓库配置 四 Eclipse配置 maven
  • JS提取链接参数

    假如要提取当前网络链接上面的参数 那么请看下去 比如要提取 var url http www baidu com x 10 y 20 c 30 d 40 中的 xycd的值 那么
  • 【已解决】SpringBoot 后端开发中console中中文乱码问题,以及其他解决方法。

    项目场景 在IDEA中 使用Maven构建SpringBoot Web后端项目 黑马程序员中的javaWeb 2023最新课程中的案例 有同样问题的同学欢迎一起讨论学习 问题描述 前端网页请求发出后 后端成功响应 但是在控制台中 中文数据会
  • C标准库文件&常用函数

    编号 头文件 C标准版本 介绍 1
  • MIPI DPHY接口的若干种实现方案概述

    一 MIPI DPHY接口简介 MIPI DPHY是MIPI的一种物理层 其协议层有CSI和DSI两种 其中CSI主要用于图像接入 如图像传感器Sensor DSI主要用于图像输出 如手机屏幕等 有关MIPI DPHY及CSI和DSI的技术
  • 涡阳2021年高考成绩查询,2021年涡阳县高考状元名单资料,今年涡阳县高考状元多少分...

    高考状元一直都备受大家的关注 不管对于学校和还是当地教育系统 都是一件荣誉的事情 高考状元历来都诞生于艳羡的目光中 大家为他们的高分叫好 羡慕他们可以一步踏入国内知名学府 本文高考升学网为大家介绍历年涡阳县高考状元的相关资料和考分情况 看看
  • 互斥锁、读写锁、自旋锁、条件变量的特点总结

    读写锁特点 1 多个读者可以同时进行读 2 写者必须互斥 只允许一个写者写 也不能读者写者同时进行 3 写者优先于读者 一旦有写者 则后续读者必须等待 唤醒时优先考虑写者 互斥锁特点 一次只能一个线程拥有互斥锁 其他线程只有等待 互斥锁是在
  • 新闻管理系统

    1 项目介绍 新闻管理系统拥有两个角色 分别为用户和管理员 具体功能如下 2 项目技术 后端框架 Jfinal mvc 前端框架 Freemarker html css JavaScript JQuery 3 开发环境 JAVA版本 JDK
  • css transparent张鑫旭,【灵感杂谈】张鑫旭和他的《CSS世界》

    原标题 灵感杂谈 张鑫旭和他的 CSS世界 说到本书的作者 前端圈里没见过他的人有很多 但没读过他文章的人很少 他就是很多前端同行眼中的 张老师 张大神 张鑫旭 以下简称 张 前一段时间 去参加 前端体验大会 有一位张的同事作为分享嘉宾 当
  • 清风数学建模学习笔记——熵权法(客观赋权法)

    熵权法 熵权法是一种客观赋权方法 客观 数据本身就可以告诉我们权重 依据的原理 指标的变异程度越小 所反映的信息量也越少 其对应的权值也应该越低 本文借鉴了数学建模清风老师的课件与思路 如果大家发现文章中有不正确的地方 欢迎大家在评论区留言
  • Vue.js用cdn方式引入

    Vue js用cdn方式引入 前言 注意本次用cdn形式引入js学习 有node js的玩家可以用node js CDN下载地址 https vuejs org js vue min js以及Node js Vue系列 windows下np
  • 解决asterisk sip错误提示Not Acceptable Here(488)或Not Found(404)

    安装好asterisk后对接到VOS3000使用 可发现VOS死活送不通asterisk 于是回头检查asterisk系统是否安装正确以及是否正常工作 经过反复检查 都没有发现问题 可VOS上面话单显示 开始一直显示488错误 于是我看了下
  • policy gradient详解(附代码)

    1 引言 policy gradient是强化学习中一种基于概率策略的方法 智能体通过与环境的交互获得特定时刻的状态信息 并直接给出下一步要采取各种动作的概率 然后根据该状态动作的策略分布采取下一步的行动 所以每种动作都有可能被选中 只是选
  • 计算 属性

    一 定义 计算属性就是当其依赖属性的值发生变化时 这个属性的值会自动更新 预支相关的DOM部分也会同步自动更新 有缓存 二 用法 1 基础用法 computed getN return this n 1 2 传递参数 返回一个函数 h1 t
  • mmdetection源码阅读

    阅读从tools train py开始 功能模块 Register类 位置 utils registry py 用于注册起到相同作用的 例如coco voc数据类 模型类 数据处理流程类 类别 具体功能是这样的 Register的 init
  • 很不起眼的6个bug,90%的程序员就算写了10年代码也肯定都踩过!

    文章来源 https juejin cn post 7120570066856312839 前言 作为Java程序员的你 不知道有没有踩过一些基础知识的坑 有时候 某个bug查了半天 最后发现竟然是一个低级错误 有时候 某些代码 这一批数据
  • 由jar包冲突导致的logback日志不输出

    文章目录 一 前言 1 resource下面有logback配置但没有生成日志 2 去掉Log4j依赖引用 3 java是如何加载logback 3 1 回顾下我们获取日志对象是如何获取的 一 前言 最近升级一个老项目 发面日志没有按照预期
  • Hydra的基本使用

    R 根据上一次进度继续破解 S 使用SSL协议连接 s 指定端口 l 指定用户名 L 指定用户名字典 文件 p 指定密码破解 P 指定密码字典 文件 e 空密码探测和指定用户密码探测 ns C 用户名可以用 分割 username pass
  • CentOS-Linux安装 XS-Tools (XenServer)

    1 在Xencenter里光驱换成xs tools iso 2 登陆SSH root ns0 cd mnt root ns0 mnt ls root ns0 mnt mkdir xs tools root ns0 mnt mount dev

随机推荐

  • 在解决方案中所使用 NuGet 管理软件包依赖

    使用程序包恢复功能可以在提交源代码时 不需要将代码库提交到源代码管理中 大幅减少项目的尺寸 所有NuGet程序包都存储在解决方案的Packages文件夹中 要启用程序包恢复功能 可右键单击解决方案 注意 不是右键单击项目文件 并选择 Ena
  • C++的const成员函数

    C 的const成员函数 const成员函数是什么 实例 总结 const成员函数是什么 通常我们看到的const成员函数格式类似于 int QueryBalance int iBalanceVal const 简单的说 const成员函数
  • C++学习(三四六)cygwin 交叉编译Android gdal

    官方说gdal的android版本是仍在做的一项工作 BuildingForAndroid GDALhttps trac osgeo org gdal wiki BuildingForAndroid cygwin android ndk r
  • 快速幂计算x的n次幂,递归版本、迭代版本、python实现

    递归 分治思想 二分 def myPow self x float n int gt float def quick pow x n if n 1 return x half quick pow x n 2 y half half if n
  • Android文件存储目录结构

    应用程序在运行的过程中如果需要向手机上保存数据 一般是把数据保存在SDcard中的 大部分应用是直接在SDCard的根目录下创建一个文件夹 然后把数据保存在该文件夹中 这样当该应用被卸载后 这些数据还保留在SDCard中 留下了垃圾数据 并
  • 华为OD机试 Python【最小传输时延Ⅱ】

    题目 题目描述 想象一个M N的大网格 每个格子上都有一个数字 这个数字就是这个格子转发数据的延迟时间 每个格子可以向其周围的8个方向 上 下 左 右以及四个角落 发送数据 现在 有技巧 如果连续两个格子的延迟时间相同 那么我们只算一个时间
  • SQL SERVER专题实验3 简单查询

    第1关 基本知识 第1题 A 第2题 ABC 第3题 AB 第4题 AB 第5题 ABCD 第6题 ABCD 第7题 AC 第2关 按指定列 全部列和计算表达式的查询 本关任务 用 SELECT 语句检索数据表中指定字段的数据 按要求输出目
  • 公交路线推荐

    项目从0 1出 请写出公交车路线推荐策略 逻辑框架 心法 1 产品目标 用户以最低的代价 成本完成想要做的事情 2 需求理解 给出区分不同用户群 场景的规则 定义衡量标准 将其数字化 通常是准确率和召回率 3 提出解决方案 给出针对每个用户
  • 逻辑运算符

    逻辑运算符 逻辑运算符概述 短路逻辑运算符 之间的区别 逻辑运算符概述 可以把多个条件的布尔结果放在一起运算 最终返回一个布尔结果 double length 11 5 double width 6 95 需求 长度大于等于10cm 宽度大
  • Java POI excel单元格背景色(填充)、字体颜色(对齐)、边框(颜色)、行高、列宽设置

    文章目录 1 Excel Cell单元格背景色 颜色名称对照关系 2 Excel Cell单元格背景填充样式 颜色填充对照关系 3 Excel Cell字体样式设置 对照图 4 Excel 行高 列宽设置 5 Excel单元格边框设置 边框
  • web前端复习

    web前端复习 1 文档声明与字符编码 2 HTML常用标签 1 语义 2 常用标签 水平线hr 3 特殊符号 4 div和span标签 5 列表 1 有序列表 ol li 2 无序列表 ui li 3 自定义列表 dl dt 6 图片标签
  • Gap业绩逆转,宝尊电商是如何当好“全球品牌数字商业伙伴”的?

    电商永不眠 技术 消费趋势 供应链 任何一个因素都可以引起商业格局的巨变 一些看似普通的事件落到一个品牌身上 往往会带来改变命运的巨大变化 就像今年2月 宝尊官宣已完成对Gap大中华区的收购 到现在 Gap便已在宝尊的塑造下开启焕新 北京时
  • Linux中的PATH环境变量

    关于执行文件路径的变量 PATH 我们在前面说过 Linux有两大原则 一切皆文件和沉默是金 那么这些命令是否也有对应的文件呢 事实上确实是这样 我们可以通过which 命令来验证 这个命令是用来查找某个命令的绝对路径 root local
  • 数据结构基础训练

    数据结构基础训练 数组和字符串 数组的操作 数组操作四种 读取元素 从索引从0开始 内存连续 查找元素 考虑最坏的情况 即所有元素不满足查找条件 插入元素 分顺序存储式插入和链式存储插入 链式较方便 删除元素 删除后的索引需要重新按新的元素
  • 学生管理系统(java)

    学生管理系统实现步骤 案例需求 针对目前我们的所学内容 完成一个综合案例 学生管理系统 该系统主要功能如下 添加学生 通过键盘录入学生信息 添加到集合中 删除学生 通过键盘录入要删除学生的学号 将该学生对象从集合中删除 修改学生 通过键盘录
  • 如何匹配基本正则表达式模式?条码拆分器BardecodeFiler v2.6.1.1全新发布!

    BardecodeFiler是一个随时可用的应用程序 可根据条形码值拆分和重命名TIF JPEG和PDF文档 应用程序从输入文件夹中读取文档 并在输出文件夹中创建新文档 原始文档不会被修改或删除 BardecodeFiler可以使用 reg
  • 一致性hash算法 - consistent hashing

    一致性hash算法 consistent hashing consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出 目前在 cache 系统中应用
  • Web自动化测试工具:Selenium3+Java详解

    今天我们一起来聊一聊Selenium的常用API使用 编程语言选用Java实现 如果使用Python等语言也大同小异 此外 本文在行文时默认同学们都已经具备一定的前端Html CSS等基础 由于本主题涉及的内容较多 加之笔者也是利用业余时间
  • 软件工程能力漫谈:比编码更重要的,是项目管理能力

    章老师博士毕业后在清华待了 12 年 主要是做网络方面的研究 到 2006 年的时候离开清华 进入到工业界 首先做了六年的用户产品研发 之后在 2012 年加入百度 一直做网络基础架构相关的开发工作 主要是对内服务 在运维部和系统部 做 B
  • python 图片识别_python识别图片文字

    滑稽研究所 python识别图片文字 哈喽 大家好呀 我是滑稽君 大家在写论文时可能经常碰到无法复制文字的文章 明明找到了需要的内容却无法直接复制使用 这让我们十分苦恼 那么本期滑稽君就告诉大家如何使用python识别图片中的文字 滑稽君整