滑稽研究所

python识别图片文字

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

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

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

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

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

视频讲解:

❂ 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开头的意思是中文简体。

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

源代码:

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的效果。

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

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

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

第一种方法识别图片中文字,如果图片里有中英混杂的情况,就只能识别一种语言。而调用百度文字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

❂ END

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

python 图片识别_python识别图片文字相关推荐

  1. python 图片识别_Python—识别图片中的文字

    一.前言 不知道大家有没有遇到过这样的问题,就是在某个软件或者某个网页里面有一篇文章,你非常喜欢,但是不能复制.或者像百度文档一样,只能复制一部分,这个时候我们就会选择截图保存.但是当我们想用到里面的 ...

  2. python指纹识别_python之图片指纹(唯一性的)

    介绍 每张图片都有一个唯一性的指纹.就好像人类的指纹可以识别出这个人类似. 图片指纹是什么?(图片哈希) 用图片指纹进行相似图片的检测.这种技术通常被称为"感知图像hash"或是简 ...

  3. python提高图片分辨率_python 获取图片分辨率的方法

    python 获取图片分辨率的方法 pil版: from PIL import Image filename = r'E:\data\yangben\0.jpg' img = Image.open(f ...

  4. python数字字母识别_python识别验证码——一般的数字加字母验证码识别

    转自:https://www.cnblogs.com/MrRead/p/7656800.html 1.验证码的识别是有针对性的,不同的系统.应用的验证码区别有大有小,只要处理好图片,利用好pytess ...

  5. python相册图片处理_Python实现图片相似度计算

    图片相似度 _ 概述 今天在用一个软件清理手机时,看到了一个比较好的功能:相似图片删除.软件识别出相册中类似的图片,删除相似图片,进而释放手机存储. 上网查了这个功能的基本实现算法,有挺多算法求图片相 ...

  6. python显示图片列表_python读取图片任意范围区域

    使用python进行图片处理,现在需要读出图片的任意一块区域,并将其转化为一维数组,方便后续卷积操作的使用. 下面使用两种方法进行处理: convert 函数 from PIL import Imag ...

  7. python 图像分析 边框_Python 去除图片纯色边框(qbit)

    前言Windows 10 2004 Python 3.8.3 Pillow 7.1.2 ImageMagick 7.0.10除了 Pillow 以外,qbit 还尝试了 skimage 和 openc ...

  8. python jpg压缩_python 实现图片批量压缩的示例

    项目中大量用到图片加载,由于图片太大,加载速度很慢,因此需要对文件进行统一压缩 一:导入包 from PIL import Image import os 二:获取图片文件的大小 def get_si ...

  9. python读取图片格式_Python读取图片尺寸、图片格式

    Python读取图片尺寸.图片格式 需要用到PIL模块,使用pip安装Pillow.Pillow是从PIL fork过来的Python 图片库. from PIL import Image im = ...

  10. python图像文件压缩_python实现图片压缩代码实例

    前言 项目中大量用到图片加载,由于图片太大,加载速度很慢,因此需要对文件进行统一压缩 一:导入包 from PIL import Image import os 二:获取图片文件的大小 def get ...

最新文章

  1. 字符串数组(就自己做个笔记)
  2. 【笔记】重学前端-winter
  3. Python 极简实现 IoU
  4. 大佬带你深入浅出Lua虚拟机
  5. Python中的排序sorted(d.items(), key=lambda x: x[1])
  6. 如何搭建modem编译环境
  7. (线段树)Just a Hook -- hdu -- 1689
  8. 如果有一天,我们和甲方交换身份…
  9. suse linux mysql下载_SUSE Linux安装MySQL
  10. 某省HW中遇到的提权
  11. 开课吧学python靠谱吗-学设计?学Python?看看我的人生是如何开挂!!!
  12. ubuntu终端运行python找不到模块_在ubuntu里直接通过终端编写运行python程序
  13. OpenCV实现摄像机标定和像素转换,surf寻找特征点,FLANN匹配算子进行匹配
  14. 收费英超与中国球迷相互抛弃
  15. 鸟哥的Linux私房菜服务器架设篇 第三版
  16. assaasasas
  17. 教你快速查询快递单号,检查物流跟官网是否有误
  18. 机器学习:鸢尾花(Iris)分类
  19. php文件后面有bak,bak文件查看器
  20. 超级计算机开采金矿,地球内部有4亿亿吨黄金,人均550万吨,为何无人敢开采?...

热门文章

  1. redis 受攻击怎么办?_最受欢迎的6个最常用的Redis库
  2. java 换行 运算符格式_Java代码样式运算符换行格式
  3. datastax.repo_使用Datastax Java驱动程序与Cassandra进行交互
  4. java8日期转时间戳_Java 8日期和时间
  5. java集成lucene_将Lucene搜索集成到应用程序中
  6. 新增操作 失败后重试_可重试的操作
  7. jconsole 使用_我的Wiki:使用JConsole对WildFly(或JBoss AS7)进行远程JMX访问
  8. Spring核心注释
  9. javafx中的tree_JavaFX中的塔防(5)
  10. Java的最新发展– 2018年4月下旬