quaggaJS是一个纯JS的插件,用于识别图片中的条形码,很方便。一般用于移动端拍照识别,也可以在网页端上传图片识别。

github下载地址

首先要指定正确格式的条形码,常见的条形码编码类型有EAN和CODE128。

另外,并不是所有图片中的条形码都可以被识别出来,而且正确率也不是100%。

下面是识别网页上传图片中条码的方法。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<section id="container" class="container">
<div class="controls">
<fieldset class="input-group">
<input type="file" accept="image/*;capture=camera">
<button id="btnIdents">识别</button>
</fieldset>
</div>
<div id="interactive" class="viewport"><br clear="all"></div>
</section>
<script src="https://cdn.bootcss.com/jquery/2.0.3/jquery.js" type="text/javascript"></script>
<script src="./js/quagga.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="./css/fileinput.css">
<script src="./js/file_input.js" type="text/javascript"></script>
<script type="text/javascript"> $(function() {var App = {
init: function() {
App.attachListeners();
},
attachListeners: function() {
var self = this;
$("#btnIdents").on("click", function(e) {
var input = document.querySelector(".controls input[type=file]");
if (input.files && input.files.length) {
App.decode(URL.createObjectURL(input.files[0]));
}
});
},
decode: function(src) {
var self = this,
config = $.extend({}, self.state, {src: src});
Quagga.decodeSingle(config, function(result) {
//识别结果
if(result.codeResult){
console.log(result.codeResult.code);
alert("图片中的条形码为:" + result.codeResult.code);
}else{
alert("未识别到图片中的条形码!");
}
});
},
state: {
inputStream: {
size: 800,
singleChannel: false
},
locator: {
patchSize: "medium",
halfSample: true
},
decoder: {
readers: [{
format: "code_128_reader",
config: {}
}]
},
locate: true,
src: null
}
}; App.init();
});
</script>
</body>
</html>

运行效果

补充:上面的代码主要是参考了官方的demo,后来又按自己的习惯写了一遍,也贴上来。运行效果是一样的。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<section id="container" class="container">
<div class="controls">
<fieldset class="input-group">
<input type="file" accept="image/*;capture=camera">
<button id="btnIdents">识别</button>
</fieldset>
</div>
<div id="interactive" class="viewport"><br clear="all"></div>
</section>
<script src="https://cdn.bootcss.com/jquery/2.0.3/jquery.js" type="text/javascript"></script>
<script src="./js/quagga.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="./css/fileinput.css">
<script src="./js/file_input.js" type="text/javascript"></script>
<script type="text/javascript"> $(function() {
$("#btnIdents").click(function() {
var input = document.querySelector(".controls input[type=file]");
if (input.files && input.files.length) {
decode(URL.createObjectURL(input.files[0]));
}
});
}); function decode(src){
var config = {
inputStream: {
size: 800,
singleChannel: false
},
locator: {
patchSize: "medium",
halfSample: true
},
decoder: {
readers: [{
format: "code_128_reader",
config: {}
}]
},
locate: true,
src: src
} Quagga.decodeSingle(config, function(result) {
if(!result){
alert("图片中没有条形码!");
return false;
}
//识别结果
if(result.codeResult){
console.log("图片中的条形码为:"+result.codeResult.code);
alert("图片中的条形码为:" + result.codeResult.code);
}else{
alert("未识别到图片中的条形码!");
}
});
} </script>
</body>
</html>

另外,如果不是文件上传的话,可以传图片的url进行识别。

        function decode(img_url) {
var config = {
readers: ["code_128_reader"],
locate: true,
src : img_url
}
Quagga.decodeSingle(config, function (result) {
console.log("decoding...");
if (!result) {
console.log("图片中没有条形码!");
return false;
}
//识别结果
if (result.codeResult) {
console.log("图片中的条形码为:" + result.codeResult.code);
} else {
console.log("未识别到图片中的条形码!");
}
});
}

使用quaggaJS识别图片中的条形码的更多相关文章

  1. Opencv+Zbar二维码识别(标准条形码/二维码识别)

    使用Opencv+Zbar组合可以很容易的识别图片中的二维码,特别是标准的二维码,这里标准指的是二维码成像清晰,图片中二维码的空间占比在40%~100%之间,这样标准的图片,Zbar识别起来很容易,不 ...

  2. 如何用ABBYY FineReader识别图片中的文本

    ABBYY FineReader 12是一款OCR光学字符识别软件,能够快速方便地将扫描纸质文档.PDF文件和数码相机的图像转换成可编辑.可搜索的文本,让电脑处理更具效率,摆脱从前的烦恼,告别耗时费力 ...

  3. Android识别图片中脸部信息

    在Android开发中,大部分应用都是以用户为第一位,用户都有自己的个人中心,用来展示自己的信息,头像无疑是展示自己最直观的方式,随着各种政策的出台,实名认证,真人头像变得尤为重要,如果要求上传真人头 ...

  4. Python通过百度Ai识别图片中的文字

    版本:python3.7 工作中有需要识别图片中的汗字,查看了半天大神们的博客,但没找到完全可以用的源码,经过自己的实践,以下源码可以实现: 创建应用 首先你需要登录百度AI,选择文字识别,创建一个应 ...

  5. 深入学习使用ocr算法识别图片中文字的方法

    公司有个需求,简单点说需要从一张图片中识别出中文,通过python来实现,当然其他程序也行,只要能实现,而小编主要学习python,所以就提了python.一个小白在网上遨游了一天,终于找到一丝丝思绪 ...

  6. numpy 构建深度神经网络来识别图片中是否有猫

    目录 1 构建数据 2 随机初始化数据 3 前向传播 4 计算损失 5 反向传播 6 更新参数 7 构建模型 8 预测 9 开始训练 10 进行预测 11 以图片的形式展示预测后的结果 搭建简单神经网 ...

  7. 超详细的编码实战,让你的springboot应用识别图片中的行人、汽车、狗子、喵星人(JavaCV+YOLO4)

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  8. 使用face_recognition批量识别图片中的人数

    #使用face_recognition实现从图片中选中人数并分别输出txtimport face_recognition import cv2 import os fin = 'D:\\Users\\ ...

  9. 识别图片中文字(百度AI)

     这个是百度官方的文档         https://ai.baidu.com/docs#/OCR-API/top    通用的文字识别,如果是其他的含生僻字/含位置信息的版本,请参考官方的文档,只 ...

随机推荐

  1. isp

    Lens Shading可细分为Luma Shading(亮度均匀性)和Color Shading(色彩均匀性)两种.其中,Luma Shading就是我们常说的暗角.既图像呈现出中心区域较亮,四周偏 ...

  2. java socket 基础操作

    服务端: public class Server { public static void main(String[] args) throws Exception { //1.创建一个服务器端Soc ...

  3. obtainFreshBeanFactory()源码探究

    该方法目的是获取bean工厂.主要逻辑是:刷新bean工厂,获取bean工厂,进而返回bean工厂,但实际上并没有刷新bean工厂,基本上为空实现.源码如下: 而刷新bean工厂,正如注释所说,do ...

  4. kettle无法更新数据库字段解决办法

    刚开始使用kettle,遇到一个问题, 在编写一个转换流程时,如果所操作的表字段名发生了变化(例如表student中id变更问userid),但是在kettle中使用时仍然显示是id,如下图, 此时清 ...

  5. Virtualbox扩展硬盘

    动态调整 1.VBoxManage showhdinfo win10.vdi 2.VBoxManage modifyhd win10.vdi --resize 61200 3.磁盘管理器中分配空间并格 ...

  6. 7.2.5 多层嵌套的if语句

    7.2.5 多层嵌套的if语句 在编写程序的代码之前要先规划好.首先,要总体设计一下程序. 为方便起见,程序应该使用一个连续的循环让用户能连续输入待测试的 数.这样,测试一个新的数字不必每次都要重新运 ...

  7. [UE4]镜像

    一.这是一个右手模型,通过镜像可以得到一个左右模型. 二.通过上图分析,镜面是X轴和Z轴形成的一个面,Y轴与XZ面垂直,因此就是镜像Y轴,将模型的Transform.Scale.Y设置为-1,即可得到 ...

  8. C#后台接java接口传输字节数组(byte[])

    事情是这样的C#t代码之前接的WCF接口,后来那边统一改为java的接口,我是用的HttpClient从后台发请求调用的java接口,其他接口都很顺利,是的....知道遇到一个需要传byte[]类型数 ...

  9. Consul集群搭建 2Server+ 3Client

    环境说明: 192.168.202.177 consul-server01 192.168.202.177 consul-server02192.168.202.174 mysql server no ...

  10. shell编程变量介绍与表达式详解

    shell变量简介 变量是任何一种编程语言都必不可少的组成部分,变量用来存放各种数据.脚本语言在定义变量时通常不需要指明类型,直接赋值就可以,Shell 变量也遵循这个规则. 在 Bash shell ...