前置条件:
pip install requests
pip install urllib3==1.26.15
步骤一:创建sourceai/model/ocr/baidu/baidu_ocr.py文件,代码如下
# encoding:utf-8
import requests
import base64
def baidu_ocr(img_path,isurl = False):
ak = 'XXXXX'
sk = 'XXXXX'
# client_id 为官网获取的AK, client_secret 为官网获取的SK
host = f'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={ak}&client_secret={sk}'
response = requests.get(host)
access_result = response.json()
print(access_result)
request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic"
if isurl:
params = {"url": img_path}
else:
# 二进制方式打开图片文件
f = open(img_path, 'rb')
img = base64.b64encode(f.read())
params = {"image": img}
request_url = request_url + "?access_token=" + str(access_result['access_token'])
headers = {'content-type': 'application/x-www-form-urlencoded'}
response = requests.post(request_url, data=params, headers=headers)
res = ''
if response:
result = response.json()
print(result)
lines = result['words_result']
for line in lines:
try:
words = line['words']
res = res + words + '<br/>'
except:
pass
return res
if __name__ == '__main__':
baidu_ocr("1.jpg")
baidu_ocr("https://c-ssl.duitang.com/uploads/item/201506/28/20150628112625_AyP4L.jpeg",True)
创建sourceai/model/ocr/xunfei/xunfei_ocr.py文件,代码如下
def xunfei_ocr(path):
pass
步骤二:创建sourceai/model/ocr/app_ocr.py文件,代码如下
from sourceai.model.ocr.xunfei import xunfei_ocr
from sourceai.model.ocr.baidu import baidu_ocr
def ocr(path, product='baidu',isurl = False):
# 业务逻辑需补充
if product == 'xunfei':
res = xunfei_ocr.xunfei_ocr(path)
elif product == 'baidu':
res = baidu_ocr.baidu_ocr(path, isurl)
else:
res = baidu_ocr.baidu_ocr(path,isurl)
return res
if __name__ == '__main__':
url = 'http://tupian.qqjay.com/u/2017/1111/1_133948_6.jpg'
res = ocr(url,product='baidu',isurl=True)
print(res)
步骤三:sourceai/views.py添加如下代码:
from sourceai.model.ocr import app_ocr
def url_to_text(request):
url = request.GET['imgFile']
result = app_ocr.ocr(url,isurl=True)
print(result)
return HttpResponse(json.dumps({"res": result}))
def img_to_text(request):
# if request.POST:
picture_obj = request.FILES.get('imgFile')
path = 'static/images/' + picture_obj.name
with open(path, 'wb') as f:
for img in picture_obj.chunks():
f.write(img)
result = app_ocr.ocr(path)
# result = app_ocr.baidu_common_ocr(path)
return HttpResponse(json.dumps({"res": result}))
步骤四:softai/settings.py文件中120左右添加如下代码
STATIC_URL = '/static/'
import os
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static'), ]
步骤五:soft863ai/urls.py中添加路径映射
path('urltotext', views.url_to_text),
步骤六:启动程序,postman测试
postman中新增Key参数imgFile,内容为:https://img-baofun.zhhainiao.com/fs/88e0cc871518e95fcf5032a106ef01ad.jpg
全部请求内容为
点击send按钮,查看结果
步骤七:创建static/js文件夹
步骤八:将jquery-1.11.3.min.js放置到static/js文件夹中
步骤九:创建templates/imgtotext/urlocr.html文件,内容如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="/static/js/jquery-1.11.3.min.js"></script>
</head>
<body>
<label>URL:</label>
<input id="id1" type="text" style="width: 800px;">
<br>
<p id="context"></p>
<button>点击按钮</button>
<script>
$(document).ready(function () {
$("button").click(function () {
url = $("#id1").val()
$.ajax({
url: "/urltotext",
type: "get",
data: {imgFile: url},
dataType: "json",
success: function (data, status, callback) {
$("#context").text(data.res)
},
error: function () {
alert("失败")
}
})
});
});
</script>
</body>
</html>
步骤十:sourceai/views.py添加如下代码:
def ocr_index_url(request):
"""跳转到图片转文字页面"""
return render(request, 'imgtotext/urlocr.html')
步骤十一:soft863ai/urls.py中添加路径映射
path('ocrurl', views.ocr_index_url),
完整如下:
urlpatterns = [
path('admin/', admin.site.urls),
path('second', views.first_index),
path('firstvalue', views.first_value),
path('urltotext', views.url_to_text),
path('ocrurl', views.ocr_index_url),
]
步骤十二:打开网页查看效果
浏览器输入http://127.0.0.1:8000/ocrurl,URL输入https://img-baofun.zhhainiao.com/fs/88e0cc871518e95fcf5032a106ef01ad.jpg ,点击按钮执行,查看效果
执行效果
标签:baidu,URL,res,Django,url,result,path,ocr,百度 From: https://blog.csdn.net/taogumo/article/details/140972552