首页 > 其他分享 > 简化车辆登记流程:利用腾讯云OCR实现自动化信息识别

简化车辆登记流程:利用腾讯云OCR实现自动化信息识别

时间:2023-09-05 14:15:07浏览次数:43  
标签:document img 车牌号 xhr 简化 腾讯 var OCR

 

项目中有一块,需要用到上传车牌车牌号到系统里,用了下腾讯云的ocr车牌号识别做了个小功能。通过腾讯云的orc识别,将车牌号录入到后台。

 

一,首先我们需要登录到腾讯云,然后搜索一下orc或者车牌号

https://curl.qcloud.com/dPX3dJRL   或者直接访问这个链接

 

二,进入后就是文字识别版块的一些介绍,我们直接点击立即使用。

 

三,然后根据引导开通一些文字识别接口,腾讯云目前会送接口次数,可以免费使用。

四,点击接口旁边的文档,可以先熟悉一下文档

五,然后我们就可以开始上代码,这里以微信的weui为例配合php做了一个简单的例子,大家可以将下面的html和php复制到自己的服务器,进行创建对应文件。

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>物业车辆录入</title>
    <link rel="stylesheet" type="text/css" href="https://res.wx.qq.com/open/libs/weui/2.3.0/weui.min.css">
</head>
<body>
    <div class="weui-cells__title">车牌号拍照上传</div>
    <div class="weui-cells weui-cells_form">
        <div class="weui-cell">
            <div class="weui-cell__bd">
                <div class="weui-uploader">
                    <div class="weui-uploader__hd">
                        <p class="weui-uploader__title">车牌号上传</p>
                    </div>
                    <div class="weui-uploader__bd">
                        <ul class="weui-uploader__files" id="uploaderFiles"></ul>
                        <div class="weui-uploader__input-box">
                            <input class="weui-uploader__input" type="file" accept="image/*" capture="camera" id="uploaderInput">
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="weui-btn-area">
        <a class="weui-btn weui-btn_primary" href="javascript:" id="submitBtn">提交</a>
    </div>

    <script src="https://res.wx.qq.com/open/libs/weuijs/1.2.1/weui.min.js"></script>
    <script>
        // 监听文件选择事件
        document.getElementById('uploaderInput').addEventListener('change', function (event) {
            var files = event.target.files;
            var file = files[0];

            if (!file) {
                return;
            }

            // 创建 FileReader 对象,用于读取文件
            var reader = new FileReader();

            reader.onload = function (e) {
                var base64Data = e.target.result; // 获取图片的Base64数据

                // 创建图片元素并显示在页面上
                var img = document.createElement('img');
                img.src = base64Data;
                img.style.maxWidth = '100%';
                img.style.marginTop = '10px';
                document.getElementById('uploaderFiles').innerHTML = '';
                document.getElementById('uploaderFiles').appendChild(img);
            };

            reader.readAsDataURL(file);
        });

        // 监听提交按钮点击事件
        document.getElementById('submitBtn').addEventListener('click', function () {
            var img = document.querySelector('#uploaderFiles img');
            if (!img) {
                alert('请先选择图片');
                return;
            }

            var base64Data = img.src.split(',')[1]; // 提取图片的Base64数据
    // 创建一个XMLHttpRequest对象
    var xhr = new XMLHttpRequest();

    // 设置请求方法和URL
    xhr.open('POST', 'https://你的域名/20230824.php', true);

    // 设置请求头,指定发送的数据类型为form-urlencoded
    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

    // 监听请求状态变化
    xhr.addEventListener("load", function() {
        if (xhr.readyState === 4 && xhr.status === 200) {
            var response = JSON.parse(xhr.responseText);
            var color = response.Response.Color;
            var licensePlateNumber = response.Response.Number;
            console.log(response);
            alert("车牌号:" + licensePlateNumber + ",已录入后台 ");
            location.reload();
        }
    });


    // 构造要发送的数据字符串
    var imageUrl = 'http://你的域名/20230824.jpg'; // 图片的URL
     var data = JSON.stringify({ imageUrl: imageUrl });


    // 发送请求
    xhr.send(data);
        });
    </script>
</body>
</html>

  

<?php

$postData = file_get_contents('php://input');

$data1 = json_decode($postData, true);

// 获取base64Data的值
$ImageUrl = $data1['imageUrl'];

if($ImageUrl){


function get_url($durl)
{
    $headers = array();
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $durl);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_BINARYTRANSFER, true);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLINFO_HEADER_OUT, true);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
    $data = curl_exec($curl);
    curl_close($curl);
    return $data;
}
$Action = 'LicensePlateOCR';
$SecretId = 'API密钥中的SecretId'; //API密钥中的SecretId
$secretKey = 'API密钥中的SecretKey'; //API密钥中的SecretKey
$Timestamp = time();
$Nonce = rand(1000, 9999);
$Region = 'ap-beijing';
$Version = '2018-11-19';
$param["Nonce"] = $Nonce;
$param["Timestamp"] = $Timestamp;
$param["Region"] = $Region;
$param["SecretId"] = $SecretId;
$param["Action"] = $Action;
$param["Version"] = $Version;
$param["ImageUrl"] = $ImageUrl;

$param["Language"] = "zh-CN";

ksort($param);

$signStr = "GETocr.ap-beijing.tencentcloudapi.com/?";
foreach ($param as $key => $value) {
    $signStr = $signStr . $key . "=" . $value . "&";
}
$signStr = substr($signStr, 0, -1);

$signature = urlencode(base64_encode(hash_hmac("sha1", $signStr, $secretKey, true)));

$URL = "https://ocr.ap-beijing.tencentcloudapi.com/?Action=".$Action."&Version=".$Version."&Region=".$Region."&ImageUrl=".$ImageUrl."&Timestamp=".$Timestamp."&Nonce=".$Nonce."&SecretId=".$SecretId."&Signature=".$signature."&Language=zh-CN";

$data = get_url($URL);
print_r($data);

    
}

?>

  

 

六,创建好对应文件后,我们再回到腾讯云这里来,鼠标移到最右上角,头像这里,然后进入访问管理。

 

七,然后进入访问密钥,将密钥的SecretId和SecretKey复制到php代码对应的地方。然后在浏览器打开html  就可以使用了

 

 

八,运行效果如下

标签:document,img,车牌号,xhr,简化,腾讯,var,OCR
From: https://www.cnblogs.com/ypyz/p/17679390.html

相关文章

  • 整数分解方法——腾讯2017春招真题
    如下示例:1:共0种分解方法;2:共0种分解方法;3:3=2+1共1种分解方法;4:4=3+1=2+1+1共2种分解方法;5:5=4+1=3+2=3+1+1=2+2+1=2+1+1+1共5种分解方法6:6=5+1=4+2=4+1+1=3+2+1=3+1+1+1=2+2+1+1=2+1+1+1+1共7种分解方法以此类推,求一任意整数num有几种分解方法?思路:对于数num,按照分解......
  • 【腾讯云 Cloud Studio 实战训练营】使用在线编程的方式用Nuxt3开发一个后台管理系统(
    前言大家好,我是刘明,开源技术爱好者,十年创业老兵。CSDN近期联合腾讯云、Coding、CloudStudio组织了【腾讯云CloudStudio实战训练营活动】,苦于前些日子一直在备考注册会计师,没有很好的体验CloudStudio的云IDE产品。现在考试结束了,体验了一把云IDE,不禁感慨云端开发原来可以这么......
  • 腾讯官宣:QQ 已实现 “三端同步更新”
    腾讯官宣:QQ已实现“三端同步更新”来源:OSCHINA编辑: 局2023-09-0216:23:00 13腾讯官方宣布,QQ已实现“三端同步更新”(Windows、Linux和Mac),并且未来也会继续执行“三端同步更新”的策略。与另外两个版本相比,目前Linux版QQ的功能比较欠缺。对......
  • 外观模式:简化复杂子系统的访问与使用
    文章目录1.简介2.外观模式的基本结构3.外观模式的实现步骤4.外观模式的应用与实例4.1图形界面库的外观模式应用4.2文件压缩与解压缩的外观模式应用4.3订单处理系统的外观模式应用5.外观模式的优缺点5.1优点5.2缺点6.总结1.简介外观模式是一种结构型设计模式,它提供了......
  • 2023 腾讯全球数字生态大会,腾讯云研发效能创新与实践专场来啦!
    点击链接了解详情......
  • 重磅!腾讯云 CODING 入选软件供应链产品名录
    点击链接了解详情2023年8月25日,由中国信息通信研究院、中国通信标准化协会联合主办的“2023首届SecGo云和软件安全大会”在京召开。会上正式发布了第二期《软件供应链厂商和产品名录》,旨在提升软件供应链透明度,宣传推广一批成熟度高、具有示范作用的优秀案例,积极应对不......
  • 连接未来,驱动创新|腾讯云 CODING DevOps 主题沙龙完美收官
    点击链接了解详情近日,由腾讯云COIDNG主办的“连接未来,驱动创新”主题沙龙在深圳圆满结束。活动现场,来自不同行业的研效专家汇聚腾讯滨海大厦,共同探讨了在不断变革的市场环境之下,组织研发效能提升的前沿策略与实践经验。活动上,Agilean首席顾问、腾讯云TVP吴穹作为研效领域......
  • 腾讯云出现硬盘IO繁忙比率100%的一次现象
    这天腾讯云的机器又登陆不上,页面无法打开,打开监控,发现内存在7G左右,cpu正常,但硬盘IO繁忙比率100%,硬盘读IOPS达到1840个,正常这个数值都在<1个。查看了日志,发现20:00一个定时脚本scrapy_cron.sh的日志中:requesttestdone..后面的日志就没了,直接跳到了20:30的日志,估计是chrome启......
  • 树莓派+Motion动作捕捉+腾讯云轻量服务器实现简易监控设备
    最近在读Vamei大神的《树莓派开始玩转linux》,当读到第13.4节的时候发现了Motion这个轻量级的监控软件,在树莓派上复现的时候遇到了一些问题,在解决的过程中看到了连接数据库的【入坑树莓派】motion点亮摄像头+frp的智能家居方案http://t.csdn.cn/U6Eou,觉得这个想法很不错,租借一台......
  • 园子的脱困努力-线上大会合作:欢迎预约直播——2023腾讯全球数字生态大会 + 腾讯云微服
    在园子脱困的关键时期,每一笔收入都很重要,一边在会员救园,一边我们要努力把握每一个商务合作机会,争取早日走出困境。之前园子维持生存的收入主要来自于与云厂商的合作,但去年由于云厂商推广策略的调整,这块收入几乎没有了。当我们对这块收入不报任何希望时,这个月开始,有些云厂商又回......