0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用Python把图片变成文字

Wildesbeast 来源:今日头条 作者:玩物有智 2020-02-15 14:40 次阅读

为什么要让孩子学编程?看了这篇文章,你就知道编程的强大之处了!

你遇到以下的情况吗?

你负责整理一些文件,结果发现文件没有word存档,这又需要我们把图片变成word。

或者是在今日头条上看到了某片好文章,结果内容却是图片,你特别想把他变成文字分享给朋友。

如果你遇到过这些问题,千万不要错过 pytesseract 这个好工具!它能够用很简单、基础的方法将图片转换成文字(分辨图片中的文字)。在我们开始介绍 pytesseract 这个 Python 模块之前,先来认识一下 Tesseract OCR 到底是什么吧!

OCR 与 Tesseract

OCR 为光学文字识别的缩写(Optical Character Recognition,OCR),白话一点就是将图片翻译为文字。而 Tesseract 是一个 OCR 模组,目前由 Google 赞助。Tesseract 已经有 30 年历史,一开始它是惠普实验室的一款专利软体,于 2005 年开源,从 2006 年后由 Google 赞助进行后续的开发和维护, Tesseract 也是目前公认最优秀、最精准的开源 OCR 系统。

除了极高的精准度外,Tesseract 也有很高的灵活性,能够通过训练识别出任何字体(只要这些字体的风格不变就可以),也能识别出任何 Unicode 字符,是不是非常厉害呢?我们待会会用到的 pytesseract 模块就像是Tesseract的 python 包。

下面让我们来动手尝试下:

第一步 安装模块

pip3 install pillowpip3 install pytesseract

第二步 编写程序

from PIL import Imageimport pytesseractimg = Image.open('test1.png')text = pytesseract.image_to_string(img, lang='eng')print(text)

首先,第一行和第二行是将我们刚刚安装的模块导入到程序中。

PIL 包含在刚刚安装的 pillow 模组,其中的 Image 模组能够读取图片档。

我们将想要转成文字的图片档,放在和这支程式相同的目录。

第四行的 'test1.png' 是相对于这个程序(.py文件)的路径,也就是该图片的文件名,因此必须放在同一个资料夹程序才找得到文件,而且文件名与路径名都是不可省略的。

所有辨识文字、转换的複杂过程全部都写在 pytesseract 中了,我们只需要知道如何调用即可。接著看到第五行,image_to_string函式有一个关键字引数 lang,默认是英文,可以改变成你想要的语言字串。

结语

简单暴力,5行代码就可以将图片转化为文字,是不是很方便呢?除了生活中的一些小问题能用 pytesseract 解决,在开发爬虫程序时,经常会遇到需要验证码的情况,这时就能利用这个模块轻松解决。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • word
    +关注

    关注

    1

    文章

    78

    浏览量

    21939
  • Unicode
    +关注

    关注

    0

    文章

    24

    浏览量

    12574
  • python
    +关注

    关注

    56

    文章

    4797

    浏览量

    84695
收藏 人收藏

    评论

    相关推荐

    使用Python+OpenCV处理图片

    如果给你一张图片作为背景,另外一张图片中的物体作为前景图,要把前景图中的物体叠加布置到背景图的中间位置,并且前景图中的物体需要在背景图中有旋转和投影,怎么处理?
    的头像 发表于 12-23 15:54 163次阅读

    个人电脑变成云电脑,个人电脑变成云电脑的步骤

        云电脑在现代工作和生活中扮演着越来越重要的角色,用户可以通过远程桌面软件,像操作本地计算机一样访问和控制远程计算机,无论它们位于何处。今天小编给大家分享个人电脑变成云电脑的步骤。    将
    的头像 发表于 12-23 13:28 67次阅读
    <b class='flag-5'>把</b>个人电脑<b class='flag-5'>变成</b>云电脑,<b class='flag-5'>把</b>个人电脑<b class='flag-5'>变成</b>云电脑的步骤

    pytorch和python的关系是什么

    在当今的人工智能领域,Python已经成为了最受欢迎的编程语言之一。Python的易学易用、丰富的库和框架以及强大的社区支持,使其成为了数据科学、机器学习和深度学习等领域的首选语言。而在深度学习领域
    的头像 发表于 08-01 15:27 1972次阅读

    【算能RADXA微服务器试用体验】+ GPT语音与视觉交互:4,文字转语音

    文字转语音使用的技术简称为TTS。一般情况下我用的都是在线的EDGE-TTS服务。但非常幸运的是,BM1684X上居然有适配好的本地运行TTS,那自然是要体验一番。 先转到project文件夹
    发表于 07-15 23:18

    使用PKI生成文件,at指令连接aws报错怎么解决?

    我使用PKI生成文件,使用脚本生成ca,cert,key这三份证书,使用的命令是:python AtPKI.py generate_bin -b ./mqtt_key.bin cert
    发表于 06-27 06:43

    STM32MP135如何使用opencv-python或v4l2-ctl打开摄像头,并保存为图片

    行。 但是官方的例程中,直接用v4l推送到media上,直接显示的又是可以的。 请问我该如何使用opencv-python 或v4l2-ctl打开摄像头,并保存为图片
    发表于 05-30 06:16

    labview图片转成base64

    各位大佬们,请教一下如何在labview中图片转成base64编码,然后传给Python,或者是然后用labview和Python之间传递图片
    发表于 05-08 01:04

    有谁知道如何在热敏打印机中实现图片的灰阶打印效果吗?

    有谁知道如何在热敏打印机中实现图片的灰阶打印效果。 现在基本上文字打印,图片打印功能都已开发结束,图片打印现在用的是点阵打印的方法。想增加灰阶打印的效果。 有哪个大神做过相关方面开发,
    发表于 04-24 15:43

    HarmonyOS开发案例:【图片编辑】

    基于canvas组件、图片编解码,介绍了图片编辑实现过程。
    的头像 发表于 04-22 16:42 921次阅读
    HarmonyOS开发案例:【<b class='flag-5'>图片</b>编辑】

    鸿蒙OS开发实例:【瀑布流式图片浏览】

    瀑布流式展示图片文字,在当前产品设计中已非常常见,本篇将介绍关于WaterFlow的图片浏览场景,顺便集成Video控件,以提高实践的趣味性
    的头像 发表于 03-29 17:38 1191次阅读
    鸿蒙OS开发实例:【瀑布流式<b class='flag-5'>图片</b>浏览】

    MX生成文件touchGFX无法成功编译是哪里出了问题?

    1、MX生成文件时,toolchian工具选择keil且touchGFX选择高版本时,生成文件可以成功在touchGFX不可以成功编译。 2、toolchian工具选择IDE且touchGFX选择
    发表于 03-13 07:40

    MB91530_590 EVB板添加字库,能显示图片但是没有文字显示是为什么?

    我的 MB91530_590EVB板在应用例程中添加字库 能显示图片但是没有文字显示。 我是在开发板的例程中修改的。 我是按照文档一步一步做的,为什么显示不出文字,有知道原因的请尽快回复,不胜感激。 最后显示的结果:没有
    发表于 02-22 08:19

    鸿蒙开发教学-图片的引用

    该接口通过图片数据源获取图片,支持本地图片和网络图片的渲染展示。其中,src是图片的数据源。
    的头像 发表于 02-01 17:36 706次阅读
    鸿蒙开发教学-<b class='flag-5'>图片</b>的引用

    鸿蒙HarmonyOS引用图片的方法

    前言 Image通过调用接口来创建,接口调用形式如下:   Image(src: string | Resource | media.PixelMap)   该接口通过图片数据源获取图片,支持本地图片
    的头像 发表于 02-01 14:35 1046次阅读
    鸿蒙HarmonyOS引用<b class='flag-5'>图片</b>的方法

    如何解决Python爬虫中文乱码问题?Python爬虫中文乱码的解决方法

    Python爬虫中文乱码问题。 一、了解字符编码 在解决乱码问题之前,我们首先需要了解一些基本的字符编码知识。常见的字符编码有ASCII、UTF-8和GBK等。 1. ASCII:是一种用于表示英文字母、数字和常用符号的字符编码,它使用一个字节(8位)来表示一个字符。
    的头像 发表于 01-12 15:11 2405次阅读