利用百度文字识别图片中的文字(python版)

import glob
from os import path
import os
from aip import AipOcr
from PIL import Image

def convertimg(picfile, outdir):
    ‘‘‘调整图片大小,对于过大的图片进行压缩
    picfile:    图片路径
    outdir:    图片输出路径
    ‘‘‘
    img = Image.open(picfile)
    width, height = img.size
    while(width*height > 4000000):  # 该数值压缩后的图片大约 两百多k
        width = width // 2
        height = height // 2
    new_img=img.resize((width,height),Image.BILINEAR)
    #合并目录path.join(...)。你给几个目录它就合并几个,形参多个目录间以逗号隔开
    new_img.save(path.join(outdir,os.path.basename(picfile)))
    print("我是convertimg函数下的:"+os.path.basename(picfile))

def baiduOCR(picfile, outfile):
    """利用百度api识别文本,并保存提取的文字
    picfile:    图片文件名
    outfile:    输出文件
    """
    filename = path.basename(picfile)

    APP_ID = "" # 百度文字识别的 ID,需要注册账号后获取,下同
    API_KEY = ""
    SECRECT_KEY = ""
    client = AipOcr(APP_ID, API_KEY, SECRECT_KEY)

    i = open(picfile, ‘rb‘)
    img = i.read()
    print("正在识别图片:\t" + filename)
    message = client.basicGeneral(img)   # 通用文字识别,每天 50 000 次免费
    #message = client.basicAccurate(img)   # 通用文字高精度识别,每天 800 次免费
    print("识别成功!")
    i.close();

    with open(outfile, ‘a+‘) as fo:
        fo.writelines("+" * 60 + ‘\n‘)
        fo.writelines("识别图片:\t" + filename + "\n" * 2)
        fo.writelines("文本内容:\n")
        # 输出文本内容
        for text in message.get(‘words_result‘):
            fo.writelines(text.get(‘words‘) + ‘\n‘)
        fo.writelines(‘\n‘*2)
    print("文本导出成功!")
    print()

if __name__ == "__main__":

    outfile = r‘H:/picture/export.txt‘
    outdir = r‘H:/picture/tmp‘
    if path.exists(outfile):
        os.remove(outfile)
    if not path.exists(outdir):
        print("创建临时输出目录: "+outdir)
        os.mkdir(outdir)
    print("压缩过大的图片...")
    #首先对过大的图片进行压缩,以提高识别速度,将压缩的图片保存于临时文件夹中
    for picfile in glob.glob("H:/picture/*.jpg"):
        convertimg(picfile, outdir)
    print("图片识别...")
    for picfile in glob.glob("H:/picture/tmp/*"):
        baiduOCR(picfile, outfile)
        os.remove(picfile)
    print(‘图片文本提取结束!文本输出结果位于 %s 文件中。‘ % outfile)
    os.removedirs(outdir)

  

原文地址:https://www.cnblogs.com/caihongmin/p/10934110.html

时间: 2024-10-08 22:42:39

利用百度文字识别图片中的文字(python版)的相关文章

如何通过迅捷OCR文字识别软件精准识别图片中的文字

怎样精准的将图片中的文字识别出来呢?相信这是很多人的烦恼,因为我们经常会遇到文字识别的时候,使用到的方法也有很多,但是很多方法识别出来的效果不是很好,需要对比着原图去改正,这就很令人烦恼了.下面小编将分享一种在图片文字识别软件中精准提取文字的方法,一起来学习下. 步骤一.文字识别的话需要使用到工具,可以打开电脑浏览器通过搜索迅捷OCR文字识别软件将其下载安装到电脑中去. 步骤二.将安装好的软件打开,关闭自动弹窗接着点击软件上上图片局部识别选项. 步骤三.进入图片局部识别选项后,点击添加文件按钮将

如何识别图片中的文字

相信很多朋友和我一样都有这样的困扰,经常要将图片或者扫描文件中的文字提取出来,保存在我们的文档中去.但是用了很多软件,效果都不是很理想,还是需要自己人工去核对,大大影响了我们的工作效率,有没有一种简单.高效.识别率百分百的方法呢?下面我就来教大家一个方法保证简单.快速.高效! 工具/原料 WPS办公软件 AJViewer文字识别软件 准备工作 1 下载软件 ① 在“百度搜索”中输入这2款软件的软件名进行下载. ② 在“百度网盘”下载,地址是:http://pan.baidu.com/share/

python 包的使用 (二)——tesseract识别图片中的文字

https://blog.csdn.net/weixin_41988628/article/details/80653245?utm_source=blogxgwz0 原文地址:https://www.cnblogs.com/eustoma/p/9826661.html

百度链接提交-主动推送Python版

百度目前提供自动提交链接和手动提交链接两种方式,其中自动提交又分为主动推送.自动推送和sitemap三种形式,按百度的说法,主动推送的效果最好,百度站长平台后台也提供了curl.php.ruby的推送示例代码但没有提供python代码,网上很少有现成的python版本主动推送代码(仅有的也有点小问题,需要修改一下),现将目前我正在使用的主动推送python代码贴出. #encoding:utf-8 import httplib def tuisong(): filecontents = open

【程序员的吃鸡大法】利用OCR文字识别+百度算法搜索,玩转冲顶大会、百万英雄、芝士超人等答题赢奖金游戏

[先上一张效果图]: 一.原理: 其实原理很简单: 1.手机投屏到电脑: 2.截取投屏画面的题目部分,进行识别,得到题目和三个答案: 3.将答案按照一定的算法,进行搜索,得出推荐答案: 4.添加了一些其他辅助功能,比如:浏览器搜索结果展示.关键字高亮.浏览器可点击等: 二.二营长,把我的意大利...............代码,呈上来,给友军看看 1.手机投屏: 方式很多,这里只列举几个比较常用.且自己感觉简单易用的: A.IOS:局域网内,可以利用iTools里的苹果录屏大师(airplay)

深入学习使用ocr算法识别图片中文字的方法

公司有个需求,简单点说需要从一张图片中识别出中文,通过python来实现,当然其他程序也行,只要能实现,而小编主要学习python,所以就提了python.一个小白在网上遨游了一天,终于找到一丝丝思绪,特意在此分享,希望大神提出宝贵的意见. 今天还是在学习OCR算法中,但是好像自己摸索确实比较难一点,而且python实现图片中文识别的方法还是不多,所以我打算记录一下自己学习的过程.今天看到一个菜鸟都可以用的开源项目,那就是OCR开源项目tesseract,可能对于还是菜鸟的我来说,最好不过了,可

Delphi百度文字识别【支持通用文字识别、身份证识别、银行卡识别、驾驶证识别、行驶证识别、车牌识别等功能】

Delphi百度文字识别          百度api文档 [Delphi百度文字识别]支持 通用文字识别.通用文字识别(高精度版).通用文字识别(含位置信息版).通用文字识别(高精度含位置版).手写文字识别.身份证识别.银行卡识别.营业执照识别.护照识别.名片识别.户口本识别.出生医学证明识别.港澳通行证识别.台湾通行证识别.通用票据识别.表格文字识别.通用票据识别.增值税发票识别.火车票识别.出租车票识别.定额发票识别.驾驶证识别.行驶证识别.车牌识别.机动车销售发票识别.车辆合格证识别.V

C# 10分钟完成百度图片提取文字(文字识别)——入门篇

现在图片文字识别已经很成熟了,比如qq长按图片,点击图片识别就可以识别图片的文字,将不认识的.文字数量大的.或者不能赋值的值进行二次可复制功能. 我们现在就基于百度Ai开放平台进行个人文字识别,demo使用的是C#控制台应用程序,后续有需要的可以嫁接到指定项目中使用,比如提供选择图片,点击识别, 获取返回的值.废话不多说,上干货: 总体为: 注册百度账号api,创建自己的应用: 创建vs控制台应用程序,引入动态链接库: 编写代码调试,效果图查看: 总结. 1.创建百度AI文字识别应用   在百度

深度学习文字识别

Blog:https://blog.csdn.net/implok/article/details/95041472 步骤: 文字识别是AI的一个重要应用场景,文字识别过程一般由图像输入.预处理.文本检测.文本识别.结果输出等环节组成. 分类:文字识别可根据待识别的文字特点采用不同的识别方法,一般分为定长文字.不定长文字两大类别. 定长文字(例如手写数字识别.验证码),由于字符数量固定,采用的网络结构相对简单,识别也比较容易: 不定长文字(例如印刷文字.广告牌文字等),由于字符数量是不固定的,因