python调用百度文字识别api识别文字

准备阶段:
首先你需要去百度云免费申请一个百度云文字识别api的接口,获得你的APP_ID,API_KEY,SECRET_KEY。然后使用pycharm(或者其他安装方法)安装baidu-api

在这里插入图片描述python调用百度文字识别api识别文字_第1张图片
测试代码

from aip import AipOcr
class ImageToText:
    def __init__(self, filePath):
        self.filePath = filePath
        self.APP_ID = '********'	#你的APP_ID
        self.API_KEY = '********************************'	#你的API_KEY
        self.SECRET_KEY = '**********************************************'	#你的SECRET_KEY
        self.aipOcr = AipOcr(self.APP_ID, self.API_KEY, self.SECRET_KEY)

    def get_file_content(self, filePath):
        with open(filePath, 'rb') as fp:
            return fp.read()

    def seePic(self):
    	#附加参数,参考百度api说明文档
        options = {
            'detect_direction': 'true',
            'language_type': 'CHN_ENG',
        }
        result = self.aipOcr.webImage(self.get_file_content(self.filePath), options)
        return result	#直接返回了识别结果
        # return result['words_result'][0]['words']	#获取识别结果字典中的文字

print(ImageToText('D:/123.png').seePic())

附: 我遇到的错误{'log_id': 574210261629379035, 'error_code': 216201, 'error_msg': 'image format error'},提示图片格式错误,检查发现原因是,我程序从网上下载的图片并不知道图片原来是什么格式的,我直接加了jpg后缀,我想百度识别的时候因为以jpg为解码方式无法识别图片把。所以我写了图片转码的程序。

图片转码程序,程序导入的PIL需要安装Pillow库
加粗样式

from PIL import Image

class ImageChangeKind:
    def __init__(self, img_path):
        self.img_path = img_path

    def IsValidImage(self):
        """
        判断文件是否为有效(完整)的图片
        :param img_path:图片路径
        :return:True:有效 False:无效
        """
        bValid = True
        try:
            Image.open(self.img_path).verify()
        except:
            bValid = False
        return bValid


    def transimg(self):
        """
        转换图片格式
        :param img_path:图片路径
        :return: True:成功 False:失败
        """
        if self.IsValidImage():
            try:
                str = self.img_path.rsplit(".", 1)
                output_img_path = str[0] + ".png"
                im = Image.open(self.img_path)
                im.save(output_img_path)
                return True
            except:
                return False
        else:
            return False


if __name__ == '__main__':
    print(ImageChangeKind('D:/123.jpg').transimg())

我识别的图片
在这里插入图片描述

你可能感兴趣的:(python,机器学习)