涨姿势——教你如何获取图片上的文字

2021-03-29 14:55:39 浏览数 (1)

涨姿势——教你如何获取图片上的文字

同事写了一句很美丽的句子,我叫他发了一下给我,我想收藏,结果他却截图,截图,截图 给我,我很方……

看了看图片,想到了现在的图片识别,我没有什么好的方法能快速识别图片上的文字,想到这里,立马开始行动起来。

1— 我们的想法总是会使我们前进

那我们的目的就非常清楚,我们需要做的就是将图片上的文字提取出来,然后得到我们的文字信息。

想法:

1、我们还没有能力写出机器学习的本来,那我们要怎么做,这时候,我突然发现第三方绝对是一个神秘的组织群体,

2、有了第三方,那使用哪个第三方呢?当然是提供给我们需要功能的第三方。

3、搜索百度之后,才发现,百度这个第三方很好使用,就是他了。

4、刚好查询到,百度有一个图片识别的接口,好了,就用它了。

接口:

代码语言:javascript复制
https://aip.baidubce.com/rest/2.0/ocr/v1/webimage

其他材料:

一张带有文字的图片。

02— 代码实现

获取到接口,那接下来就是去实现它:

首先来解决一下

代码语言:javascript复制
access_token

我们需要使用到另外的一个接口,

代码语言:javascript复制
access_token= 'https://aip.baidubce.com/oauth/2.0/token?'
       'grant_type=client_credentials&' 
       'client_id=YtY4Q9wTWBFuc6B6P8XhmOV' 
       '&client_secret=rwi6dj6YB4CkH9IvbK6gtGvdXtq'

client_id 和 client_secret 这两个参数都需要到百度api后台去申请应用才能获取到。

然后是获取access_token的代码:

代码语言:javascript复制
headers={'Content-Type': 'application/json; charset=UTF-8'}
host = 'https://aip.baidubce.com/oauth/2.0/token?' 
       'grant_type=client_credentials&' 
       'client_id=YtY4Q3UwTWBFuc6B6P8XhmOV' 
       '&client_secret=rwi6dj6YB4CkHhRV1NOIvbK6gtGvdXtq'
access_token=requests.get(host,headers=headers).json()["access_token"]

access_token获取成功,那我们接下来拿出我们准备的图片,

获取图片文字代码:

代码语言:javascript复制
file = open("图片地址", 'rb')
image = file.read()
file.close()
webimage=requests.post("https://aip.baidubce.com/rest/2.0/ocr/v1/webimage?access_token=" access_token,
headers={"Content-Type":"application/x-www-form-urlencoded"},
data={"image":base64.b64encode(image)}).json()
for i in webimage["words_result"]:
    print(i["words"],end='')#拼接文字输出

来看完整代码:

代码语言:javascript复制
import requests
import base64

headers={'Content-Type': 'application/json; charset=UTF-8'}
host = 'https://aip.baidubce.com/oauth/2.0/token?' 
       'grant_type=client_credentials&' 
       'client_id=YtY4Q3UwTFuc6B6P8XhmOV' 
       '&client_secret=rwi6dj6YB4CkHhRV1NvbK6gtGvdXtq'
access_token=requests.get(host,headers=headers).json()["access_token"]
file = open("图片地址", 'rb')# 读取图片
image = file.read()
file.close()
webimage=requests.post("https://aip.baidubce.com/rest/2.0/ocr/v1/webimage?access_token=" access_token,
                       headers={"Content-Type":"application/x-www-form-urlencoded"},
                       data={"image":base64.b64encode(image)}).json()
for i in webimage["words_result"]:
    print(i["words"],end='')#拼接文字并输出

当然除了用来获取文字之外,还可以用来翻页验证码使用。

在进行自动化操作时,验证码跳不过去,那可以试一下把验证码翻译过来。

0 人点赞