首页 > 其他分享 >Django输入URL链接实现百度文字识别

Django输入URL链接实现百度文字识别

时间:2024-08-10 09:25:35浏览次数:10  
标签:baidu URL res Django url result path ocr 百度

前置条件:

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

全部请求内容为

http://127.0.0.1:8000/urltotext?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

相关文章

  • 计算机毕业设计django+vue班级管理系统【开题+论文+程序】
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着教育信息化的不断深入,传统的班级管理模式已难以满足现代教育的需求。传统方式下,班级信息的记录、学生出勤的跟踪、教学课程的安排以及......
  • 计算机毕业设计django+vue菜鸟驿站存取件管理系统设计与实现【开题+论文+程序】
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着电子商务的蓬勃发展和人们生活节奏的加快,快递业务已成为现代社会不可或缺的一部分。菜鸟驿站作为连接快递员与收件人的重要节点,承担着......
  • 计算机毕业设计django+vue宠物救助系统设计和实现【开题+论文+程序】
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着社会对动物福利关注度的日益提高,宠物救助事业逐渐成为社会关注的热点。然而,传统的宠物救助方式往往存在信息不对称、救助效率低下、资......
  • 计算机毕业设计django+vue大学快捷就餐系统【开题+论文+程序】
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在快节奏的大学校园生活中,学生们对于就餐的便捷性、多样性和高效性有着越来越高的需求。然而,传统的校园食堂就餐模式往往存在排队时间长、......
  • Django5+Vue3:OA系统前后端分离项目实战-Frame页面框架搭建(14)
    Django5+Vue3系列文章前言本节开始,全文仅对会员开放。若点赞和收藏数量超过100,全文将免费开放。此项目采用Django框架的5.0.7版本进行开发。Django5.0支持的Python版本为3.10、3.11和3.12。OA系统系列文章将持续更新,直至项目的Docker部署阶段。专栏链接:......
  • nginx 之 proxy_pass详解 切割url
    原文链接: https://www.jianshu.com/p/b010c9302cd0在nginx中配置proxy_pass代理转发时,如果在proxy_pass后面的url加/,表示绝对根路径;如果没有/,表示相对路径,把匹配的路径部分也给代理走。假设下面四种情况分别用http://192.168.1.1/proxy/test.html进行访问。第一种:locatio......
  • 1、【django5笔记】 基础知识与逻辑
    系统: ubunt22.04.4LTS 1、确保python版本为3.10以上   python3-V 2、创建虚拟环境   python3-mvenvtest_venv  cdtest_venv  sourcebin/activate#进入虚环境  pip-V#确认虚环境下pip可用 3、安装django   python-mpipinstall......
  • 基于django+vue框架的贵州农产品销售平台设计与实现【开题报告+程序+论文】-计算机毕
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景近年来,随着电子商务的蓬勃发展和乡村振兴战略的深入实施,农产品上行通道的建设成为推动农村经济转型升级的关键一环。贵州,作为中国西南地区......
  • 基于django+vue框架的共享汽车管理系统【开题报告+程序+论文】-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着城市化进程的加速和环保意识的提升,共享汽车作为一种新型的出行方式,正逐渐受到公众的青睐。它不仅有效缓解了城市交通拥堵问题,还减少了......
  • Vue 中的日期和时间 Django 后端的日期和时间 不一样
    Vue中的日期和时间 <el-date-picker></el-date-picker>  Django后端的日期和时间:projectId=1,beginDate=2024-08-10T16:00:00.000Z,endDate=2024-08-14T16:00:00.000Z,chulizhuangtai=,gaojingshijian= 解决方法  <el-date-pickerv-model="beginDate&quo......