美文网首页
python调用baidu_aip包中的AipOCR实现图像文字

python调用baidu_aip包中的AipOCR实现图像文字

作者: 守望一株麦穗 | 来源:发表于2022-08-19 12:38 被阅读0次

    软件环境:window10 x64 ; python3.9.2
    (不同版本的python,语法可能会有不同。之前吃够了苦头。教程不注明环境,会浪费很多时间测试。)

    pip安装baidu_aip包

    pip install baidu_aip
    
    image.png

    下面的程序,可以调用baidu_aip包中的AipOCR
    这里成功的关键点是申请百度云的服务,获取授权
    当授权不成功时,会client.general(image)会返回类似下面的错误信息
    { “error_msg”: “IAM Certification failed”, “error_code”: 14 }

    注意1:py程序文件与图像文件要放在同一目录里面。
    这是因为 cf=os.path.realpath(sys.argv[0]) 获取的是当前程序py文件所在绝对路径。“D:\python_wd\图像识别.py”
    os.path.split(cf)[0] #这里是获取的是当前程序文件所在的目录 "D:\python_wd"

    注意2:当fname="test.jpg" 时,
    os.path.splitext(fname)[0]的返回值是"test"
    os.path.splitext(fname)[-1]的返回值是".jpg"

    import os;
    import sys;
    from aip import AipOcr;
    from docx import Document
    from docx.shared import Pt
    
    ##这里的APP_ID, APP_KEY,SECRET_KEY是通过百度云获得的
    ##因为此程序引用了 baidu_aip包里面的AipOCR,这些包不是免费的
    ##好在百度智能云提供了试用包,如何申请请参考网页:
    APP_ID='270xxxx'
    APP_KEY='5wkObexxxxxxx'
    SECRET_KEY='hquxxxxxxxx'
    client=AipOcr(APP_ID,APP_KEY,SECRET_KEY)
    
    def get_file_content(filePath):
        with open(filePath,'rb') as fp:
            return fp.read()
    
    #获取的是当前程序文件的绝对路径。
    #cf=os.path.realpath(sys.argv[0])
    #os.path.split(cf)[0]  #获取的是当前程序文件所在的目录
    cf=os.path.realpath(sys.argv[0])
    localdir=os.path.split(cf)[0]
    all_file_names=os.listdir(localdir)
    
    for fname in all_file_names:
        #print(fname,os.path.splitext(fname)[0],os.path.splitext(fname)[-1])
        if os.path.splitext(fname)[-1] in ['.jpg','png','tiff','jpeg']:
            fig_path=localdir+"\\"+fname
            fig_path2=localdir+"\\"+os.path.splitext(fname)[0]+'.docx'
            print (fig_path)
            #print(fig_path2)
            image = get_file_content(fig_path)# 获取图片        
            msg=client.general(image)  #调用API解析图片后生成一段信息储存在变量中
            ##这里是将图像识别后的内容存入word里面
           ##docx.add_paragraph()
            docx = Document()
            docx.add_paragraph(fname)
            for i in msg.get('words_result'):
                print(i.get('words'))
                docx.add_paragraph(i.get('words'))
            docx.add_paragraph("=====~~~~~end========")
            docx.save(fig_path2)
    

    如何从百度智能云中获取自己的app_id, app_key, secret_key
    第一步:登录/注册百度智能云:https://cloud.baidu.com/

    image.png
    第二步:找到文字识别模块
    image.png
    第三步:领取尝鲜试用包,能领的都领上。
    image.png
    image.png
    第四步:创建应用
    image.png image.png
    image.png

    这里就是要获取的AppID, API Key ,Secret Key

    相关文章

      网友评论

          本文标题:python调用baidu_aip包中的AipOCR实现图像文字

          本文链接:https://www.haomeiwen.com/subject/rmnpgrtx.html