使用Python图片格式转换器并识别图片中的文字

在日常生活中,我们经常需要用到图片,我们都知道,图片的种类挺多的,在这里不一一列举。

    我们今天要完成就是一个图片转换器外加图片识别程序,废话不多说,直接就是淦!

1.文字识别技术

2.图片转换器

一、文字识别技术

首先介绍文字识别技术,就是读取图片之后然后把图片中的文字提取出来。

1.打开百度开放平台

图片

进去之后咱们选择文字识别,可以看出,语音合成和图片识别的参数不一样,所以不要搞混了,不过他们用的Python模块是一样的,这个可以放心使用。

图片

谈到文字识别,大致可分为本地文件文字识别和网络文件文字识别,识别率还算挺高的,他的用法与语音合成有很多相似之处,当然也有很多不同,例如:

from aip import AipOcr
""" 你的 APPID AK SK """APP_ID = '你的 App ID'API_KEY = '你的 Api Key'SECRET_KEY = '你的 Secret Key'
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

首先是使用的模块不同,其次参数也不同,可以看出来第一步配置就是这么简单。

然后我们需要对本地文件进行一个识别,例如:

图片

可以看出来,这些就是识别后图片上的内容,识别效果很好,非常完美。

文字识别——请求参数详情

参数名称是否必选类型可选值范围默认值说明
imagestring图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
urlstring图片完整URL,URL长度不超过1024字节,URL对应的图片base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式,当image字段存在时url字段失效
language_typestringCHN_ENG ENG POR FRE GER ITA SPA RUS JAP KORCHN_ENG识别语言类型,默认为CHN_ENG。可选值包括:- CHN_ENG:中英文混合;- ENG:英文;- POR:葡萄牙语;- FRE:法语;- GER:德语;- ITA:意大利语;- SPA:西班牙语;- RUS:俄语;- JAP:日语;- KOR:韩语;
detect_directionstringtrue falsefalse是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括: - true:检测朝向;- false:不检测朝向。
detect_languagestringtrue falsefalse是否检测语言,默认不检测。当前支持(中文、英语、日语、韩语)
probabilitystringtrue false是否返回识别结果中每一行的置信度

文字识别——返回数据参数详情

字段必选类型说明
directionnumber图像方向,当detect_direction=true时存在。- -1:未定义, - 0:正向, - 1: 逆时针90度, - 2:逆时针180度, - 3:逆时针270度
log_idnumber唯一的log id,用于问题定位
words_result_numnumber识别结果数,表示words_result的元素个数
words_resultarray定位和识别结果数组
+wordsstring识别结果字符串
probabilityobject行置信度信息;如果输入参数 probability = true 则输出
+averagenumber行置信度平均值
+variancenumber行置信度方差
+minnumber行置信度最小值

可以看出这个API还是相当不错了,下面我们聊一下图片格式转换器,

二、图片格式转换器

图片格式转换器,顾名思义就是将图片格式互相转换,很多人为了方便都是直接改后缀名,殊不知那样图盘的原始样式会受到影响,也许图片会打开后从产生错误的画面。下面我们就来做一个类似的案例。

1.先安装图片处理模块 pillow ,安装方法 :

pip install pillow

2.导入pillow

from PIL import Image

3.判断文件是否可以打开

from PIL import Imagedef isbad(path):        bad = True        try:            Image.open(path).verify() #判断图片是否损坏        except:            bad= False        return bad

4.转换文件格式

def translate(path):        if isbad(path):            try:                str = path.rsplit(".", 1)                output_path = str[0] + ".png" #输出文件名称                im = Image.open(path)                  im.save(output_path)  #保存目标文件                return True            except:                return False        else:            return False

这样我们就得到了一张完整的可用的png图片了,代码如图:

图片

 本项目用于平时上传文件识别图片所用,效果还是蛮不错的,希望大家喜欢。

  • 25
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸟学识

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值