You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
quaggaJS/dist/quagga.min.js

9 lines
82 KiB
JavaScript

/*! quagga 2015-06-14 */
!function(a,b){var c=b.toString();"undefined"!=typeof module?module.exports=b(c):a.Quagga=b(c)}(this,function(a){/**
* @license almond 0.2.9 Copyright (c) 2011-2014, The Dojo Foundation All Rights Reserved.
* Available via the MIT or new BSD license.
* see: http://github.com/jrburke/almond for details
*/
var b,c,d;!function(a){function e(a,b){return u.call(a,b)}function f(a,b){var c,d,e,f,g,h,i,j,k,l,m,n=b&&b.split("/"),o=s.map,p=o&&o["*"]||{};if(a&&"."===a.charAt(0))if(b){for(n=n.slice(0,n.length-1),a=a.split("/"),g=a.length-1,s.nodeIdCompat&&w.test(a[g])&&(a[g]=a[g].replace(w,"")),a=n.concat(a),k=0;k<a.length;k+=1)if(m=a[k],"."===m)a.splice(k,1),k-=1;else if(".."===m){if(1===k&&(".."===a[2]||".."===a[0]))break;k>0&&(a.splice(k-1,2),k-=2)}a=a.join("/")}else 0===a.indexOf("./")&&(a=a.substring(2));if((n||p)&&o){for(c=a.split("/"),k=c.length;k>0;k-=1){if(d=c.slice(0,k).join("/"),n)for(l=n.length;l>0;l-=1)if(e=o[n.slice(0,l).join("/")],e&&(e=e[d])){f=e,h=k;break}if(f)break;!i&&p&&p[d]&&(i=p[d],j=k)}!f&&i&&(f=i,h=j),f&&(c.splice(0,h,f),a=c.join("/"))}return a}function g(b,c){return function(){return n.apply(a,v.call(arguments,0).concat([b,c]))}}function h(a){return function(b){return f(b,a)}}function i(a){return function(b){q[a]=b}}function j(b){if(e(r,b)){var c=r[b];delete r[b],t[b]=!0,m.apply(a,c)}if(!e(q,b)&&!e(t,b))throw new Error("No "+b);return q[b]}function k(a){var b,c=a?a.indexOf("!"):-1;return c>-1&&(b=a.substring(0,c),a=a.substring(c+1,a.length)),[b,a]}function l(a){return function(){return s&&s.config&&s.config[a]||{}}}var m,n,o,p,q={},r={},s={},t={},u=Object.prototype.hasOwnProperty,v=[].slice,w=/\.js$/;o=function(a,b){var c,d=k(a),e=d[0];return a=d[1],e&&(e=f(e,b),c=j(e)),e?a=c&&c.normalize?c.normalize(a,h(b)):f(a,b):(a=f(a,b),d=k(a),e=d[0],a=d[1],e&&(c=j(e))),{f:e?e+"!"+a:a,n:a,pr:e,p:c}},p={require:function(a){return g(a)},exports:function(a){var b=q[a];return"undefined"!=typeof b?b:q[a]={}},module:function(a){return{id:a,uri:"",exports:q[a],config:l(a)}}},m=function(b,c,d,f){var h,k,l,m,n,s,u=[],v=typeof d;if(f=f||b,"undefined"===v||"function"===v){for(c=!c.length&&d.length?["require","exports","module"]:c,n=0;n<c.length;n+=1)if(m=o(c[n],f),k=m.f,"require"===k)u[n]=p.require(b);else if("exports"===k)u[n]=p.exports(b),s=!0;else if("module"===k)h=u[n]=p.module(b);else if(e(q,k)||e(r,k)||e(t,k))u[n]=j(k);else{if(!m.p)throw new Error(b+" missing "+k);m.p.load(m.n,g(f,!0),i(k),{}),u[n]=q[k]}l=d?d.apply(q[b],u):void 0,b&&(h&&h.exports!==a&&h.exports!==q[b]?q[b]=h.exports:l===a&&s||(q[b]=l))}else b&&(q[b]=d)},b=c=n=function(b,c,d,e,f){if("string"==typeof b)return p[b]?p[b](c):j(o(b,c).f);if(!b.splice){if(s=b,s.deps&&n(s.deps,s.callback),!c)return;c.splice?(b=c,c=d,d=null):b=a}return c=c||function(){},"function"==typeof d&&(d=e,e=f),e?m(a,b,c,d):setTimeout(function(){m(a,b,c,d)},4),n},n.config=function(a){return n(a)},b._defined=q,d=function(a,b,c){b.splice||(c=b,b=[]),e(q,a)||e(r,a)||(r[a]=[a,b,c])},d.amd={jQuery:!0}}(),d("almond",function(){}),d("barcode_reader",[],function(){"use strict";function a(){return this._row=[],this}return a.prototype._nextUnset=function(a,b){var c;for(void 0===b&&(b=0),c=b;c<a.length;c++)if(!a[c])return c;return a.length},a.prototype._matchPattern=function(a,b){var c,d=0,e=0,f=this.MODULO,g=this.SINGLE_CODE_ERROR||1;for(c=0;c<a.length;c++){if(e=Math.abs(b[c]-a[c]),e>g)return Number.MAX_VALUE;d+=e}return d/f},a.prototype._nextSet=function(a,b){var c;for(b=b||0,c=b;c<a.length;c++)if(a[c])return c;return a.length},a.prototype._normalize=function(a,b){var c,d,e=this,f=0,g=0,h=[],i=0;for(b||(b=e.MODULO),c=0;c<a.length;c++)1===a[c]?g++:f+=a[c];if(d=f/(b-g),d>1)for(c=0;c<a.length;c++)i=1===a[c]?a[c]:a[c]/d,h.push(i);else for(d=(f+g)/b,c=0;c<a.length;c++)i=a[c]/d,h.push(i);return h},a.prototype._matchTrace=function(a,b){var c,d,e=[],f=this,g=f._nextSet(f._row),h=!f._row[g],i=0,j={error:Number.MAX_VALUE,code:-1,start:0};if(a){for(c=0;c<a.length;c++)e.push(0);for(c=g;c<f._row.length;c++)if(f._row[c]^h)e[i]++;else{if(i===e.length-1)return d=f._matchPattern(e,a),b>d?(j.start=c-g,j.end=c,j.counter=e,j):null;i++,e[i]=1,h=!h}}else for(e.push(0),c=g;c<f._row.length;c++)f._row[c]^h?e[i]++:(i++,e.push(0),e[i]=1,h=!h);return j.start=g,j.end=f._row.length-1,j.counter=e,j},a.prototype.decodePattern=function(b){var c,d=this;return d._row=b,c=d._decode(),null===c?(d._row.reverse(),c=d._decode(),c&&(c.direct
c[1]=a[1]*b,c[2]=a[2]*b,c[3]=a[3]*b,c):(a[0]*=b,a[1]*=b,a[2]*=b,a[4]*=b,a)},h.xMat4=function(a,b,c){c||(c=a);var d=a[0],e=a[1],f=a[2],g=a[3];return c[0]=b[0]*d+b[4]*e+b[8]*f+b[12]*g,c[1]=b[1]*d+b[5]*e+b[9]*f+b[13]*g,c[2]=b[2]*d+b[6]*e+b[10]*f+b[14]*g,c[3]=b[3]*d+b[7]*e+b[11]*f+b[15]*g,c};var i={};i.create=function(a){var b;return a?(b=new glMatrixArrayType(4),b[0]=a[0],b[1]=a[1],b[2]=a[2],b[3]=a[3]):b=new glMatrixArrayType(glMatrixArrayType===Array?[0,0,0,0]:4),b},i.xVec2=function(a,b,c){c||(c=b);var d=b[0],e=b[1];return c[0]=a[0]*d+a[1]*e,c[1]=a[2]*d+a[3]*e,c},i.scale=function(a,b,c){return c&&a!=c?(c[0]=a[0]*b,c[1]=a[1]*b,c[2]=a[2]*b,c[3]=a[3]*b,c):(a[0]*=b,a[1]*=b,a[2]*=b,a[3]*=b,a)},i.determinant=function(a){return a[0]*a[3]-a[1]*a[2]},i.inverse=function(a){var b=1/i.determinant(a),c=a[3]*b,d=-a[1]*b,e=-a[2]*b,f=a[0];return a[0]=c,a[1]=d,a[2]=e,a[3]=f,a};var j={};j.create=function(a){var b;return a?(b=new glMatrixArrayType(2),b[0]=a[0],b[1]=a[1]):b=new glMatrixArrayType(glMatrixArrayType===Array?[0,0]:2),b},j.subtract=function(a,b,c){return c&&a!=c?(c[0]=a[0]-b[0],c[1]=a[1]-b[1],c):(a[0]-=b[0],a[1]-=b[1],a)},j.add=function(a,b,c){return c&&a!=c?(c[0]=a[0]+b[0],c[1]=a[1]+b[1],c):(a[0]+=b[0],a[1]+=b[1],a)},j.scale=function(a,b,c){return c&&a!=c?(c[0]=a[0]*b,c[1]=a[1]*b,c):(a[0]*=b,a[1]*=b,a)},j.normalize=function(a,b){b||(b=a);var c=a[0],d=a[1],e=Math.sqrt(c*c+d*d);return e?1==e?(b[0]=c,b[1]=d,b):(e=1/e,b[0]=c*e,b[1]=d*e,b):(b[0]=0,b[1]=0,b)},j.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]},j.multiply=function(a,b,c){return c||(c=a),c[0]=a[0]*b[0],c[1]=a[1]*b[1],c},j.unproject=function(a){return e.create([a[0],a[1],1])},j.length=function(a){return Math.sqrt(a[0]*a[0]+a[1]*a[1])},j.perspectiveProject=function(a){var b=j.create(a);return j.scale(b,1/a[2])},e.project=function(a){return j.scale(j.create(a),1/a[2])};var k={};k.scale=function(a,b,c){return c&&a!=c?(c[0]=a[0]*b,c[1]=a[1]*b,c[2]=a[2]*b,c[3]=a[3]*b,c[4]=a[4]*b,c[5]=a[5]*b,c):(a[0]*=b,a[1]*=b,a[2]*=b,a[3]*=b,a[4]*=b,a[5]*=b,a)},k.subtract=function(a,b,c){return c&&a!=c?(c[0]=a[0]-b[0],c[1]=a[1]-b[1],c[2]=a[2]-b[2],c[3]=a[3]-b[3],c[4]=a[4]-b[4],c[5]=a[5]-b[5],c):(a[0]-=b[0],a[1]-=b[1],a[2]-=b[2],a[3]-=b[3],a[4]-=b[4],a[5]-=b[5],a)},k.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+a[3]*b[3]+a[4]*b[4]+a[5]*b[5]};var l={};return l.xVec6=function(a,b,c){c||(c=b);var d=b[0],e=b[1],f=b[2],g=b[3],h=b[4],i=b[5];return c[0]=a[0]*d+a[1]*e+a[2]*f+a[3]*g+a[4]*h+a[5]*i,c[1]=a[6]*d+a[7]*e+a[8]*f+a[9]*g+a[10]*h+a[11]*i,c[2]=a[12]*d+a[13]*e+a[14]*f+a[15]*g+a[16]*h+a[17]*i,c[3]=a[18]*d+a[19]*e+a[20]*f+a[21]*g+a[22]*h+a[23]*i,c[4]=a[24]*d+a[25]*e+a[26]*f+a[27]*g+a[28]*h+a[29]*i,c[5]=a[30]*d+a[31]*e+a[32]*f+a[33]*g+a[34]*h+a[35]*i,c},f.xVec3=function(a,b,c){c||(c=b);var d=b[0],e=b[1],f=b[2];return c[0]=a[0]*d+a[1]*e+a[2]*f,c[1]=a[3]*d+a[4]*e+a[5]*f,c[2]=a[6]*d+a[7]*e+a[8]*f,c},d("glMatrixAddon",["glMatrix"],function(a){return function(){var b;return b||a.glMatrixAddon}}(this)),d("array_helper",[],function(){"use strict";return{init:function(a,b){for(var c=a.length;c--;)a[c]=b},shuffle:function(a){var b,c,d=a.length-1;for(d;d>=0;d--)b=Math.floor(Math.random()*d),c=a[d],a[d]=a[b],a[b]=c;return a},toPointList:function(a){var b,c,d=[],e=[];for(b=0;b<a.length;b++){for(d=[],c=0;c<a[b].length;c++)d[c]=a[b][c];e[b]="["+d.join(",")+"]"}return"["+e.join(",\r\n")+"]"},threshold:function(a,b,c){var d,e=[];for(d=0;d<a.length;d++)c.apply(a,[a[d]])>=b&&e.push(a[d]);return e},maxIndex:function(a){var b,c=0;for(b=0;b<a.length;b++)a[b]>a[c]&&(c=b);return c},max:function(a){var b,c=0;for(b=0;b<a.length;b++)a[b]>c&&(c=a[b]);return c},sum:function(a){for(var b=a.length,c=0;b--;)c+=a[b];return c}}}),d("cv_utils",["cluster","glMatrixAddon","array_helper"],function(a,b,c){"use strict";var d={};return d.imageRef=function(a,b){var c={x:a,y:b,toVec2:function(){return j.create([this.x,this.y])},toVec3:function(){return e.create([this.x,this.y,1])},round:function(){return this.x=Math.floor(this.x>0?this.x+.5:this.x-.5),this.y=Math.floor(this.y>0?this.y+.5:this.y-.5),this}};return c},d.computeIntegralIm
return a}),d("image_debug",[],function(){"use strict";return{drawRect:function(a,b,c,d){c.strokeStyle=d.color,c.fillStyle=d.color,c.lineWidth=1,c.beginPath(),c.strokeRect(a.x,a.y,b.x,b.y)},drawPath:function(a,b,c,d){c.strokeStyle=d.color,c.fillStyle=d.color,c.lineWidth=d.lineWidth,c.beginPath(),c.moveTo(a[0][b.x],a[0][b.y]);for(var e=1;e<a.length;e++)c.lineTo(a[e][b.x],a[e][b.y]);c.closePath(),c.stroke()}}}),d("barcode_locator",["image_wrapper","cv_utils","rasterizer","tracer","skeletonizer","array_helper","image_debug"],function(a,b,c,d,e,f,g){function h(){var c;v=u.halfSample?new a({x:E.size.x/2|0,y:E.size.y/2|0}):E,D=b.calculatePatchSize(u.patchSize,v.size),H.x=v.size.x/D.x|0,H.y=v.size.y/D.y|0,C=new a(v.size,void 0,Uint8Array,!1),y=new a(D,void 0,Array,!0),c=new ArrayBuffer(65536),x=new a(D,new Uint8Array(c,0,D.x*D.y)),w=new a(D,new Uint8Array(c,D.x*D.y*3,D.x*D.y),void 0,!0),F=e(I,{size:D.x},c),B=new a({x:v.size.x/x.size.x|0,y:v.size.y/x.size.y|0},void 0,Array,!0),z=new a(B.size,void 0,void 0,!0),A=new a(B.size,void 0,Int32Array,!0)}function k(){u.useWorker||"undefined"==typeof document||(G.dom.binary=document.createElement("canvas"),G.dom.binary.className="binaryBuffer",u.showCanvas===!0&&document.querySelector("#debug").appendChild(G.dom.binary),G.ctx.binary=G.dom.binary.getContext("2d"),G.dom.binary.width=C.size.x,G.dom.binary.height=C.size.y)}function l(a){var b,c,d,e,f,h,k,l=C.size.x,m=C.size.y,n=-C.size.x,o=-C.size.y;for(b=0,c=0;c<a.length;c++)e=a[c],b+=e.rad,u.showPatches&&g.drawRect(e.pos,x.size,G.ctx.binary,{color:"red"});for(b/=a.length,b=(180*b/Math.PI+90)%180-90,0>b&&(b+=180),b=(180-b)*Math.PI/180,f=i.create([Math.cos(b),-Math.sin(b),Math.sin(b),Math.cos(b)]),c=0;c<a.length;c++){for(e=a[c],d=0;4>d;d++)i.xVec2(f,e.box[d]);u.boxFromPatches.showTransformed&&g.drawPath(e.box,{x:0,y:1},G.ctx.binary,{color:"#99ff00",lineWidth:2})}for(c=0;c<a.length;c++)for(e=a[c],d=0;4>d;d++)e.box[d][0]<l&&(l=e.box[d][0]),e.box[d][0]>n&&(n=e.box[d][0]),e.box[d][1]<m&&(m=e.box[d][1]),e.box[d][1]>o&&(o=e.box[d][1]);for(h=[[l,m],[n,m],[n,o],[l,o]],u.boxFromPatches.showTransformedBox&&g.drawPath(h,{x:0,y:1},G.ctx.binary,{color:"#ff0000",lineWidth:2}),k=u.halfSample?2:1,f=i.inverse(f),d=0;4>d;d++)i.xVec2(f,h[d]);for(u.boxFromPatches.showBB&&g.drawPath(h,{x:0,y:1},G.ctx.binary,{color:"#ff0000",lineWidth:2}),d=0;4>d;d++)j.scale(h[d],k);return h}function m(){b.otsuThreshold(v,C),C.zeroBorder(),u.showCanvas&&C.show(G.dom.binary,255)}function n(){var a,b,d,e,h,i,j,k,l=[];for(a=0;a<H.x;a++)for(b=0;b<H.y;b++)d=x.size.x*a,e=x.size.y*b,r(d,e),w.zeroBorder(),f.init(y.data,0),i=c.create(w,y),j=i.rasterize(0),u.showLabels&&y.overlay(G.dom.binary,Math.floor(360/j.count),{x:d,y:e}),h=y.moments(j.count),l=l.concat(s(h,[a,b],d,e));if(u.showFoundPatches)for(a=0;a<l.length;a++)k=l[a],g.drawRect(k.pos,x.size,G.ctx.binary,{color:"#99ff00",lineWidth:2});return l}function o(a){var b,c,d=[],e=[];for(b=0;a>b;b++)d.push(0);for(c=A.data.length;c--;)A.data[c]>0&&d[A.data[c]-1]++;return d=d.map(function(a,b){return{val:a,label:b+1}}),d.sort(function(a,b){return b.val-a.val}),e=d.filter(function(a){return a.val>=5})}function p(a,c){var d,e,f,h,i,j=[],k=[],m=[0,1,1],n=[0,0,0];for(d=0;d<a.length;d++){for(f=A.data.length,j.length=0;f--;)A.data[f]===a[d].label&&(h=B.data[f],j.push(h));if(i=l(j),i&&(k.push(i),u.showRemainingPatchLabels))for(e=0;e<j.length;e++)h=j[e],m[0]=a[d].label/(c+1)*360,b.hsv2rgb(m,n),g.drawRect(h.pos,x.size,G.ctx.binary,{color:"rgb("+n.join(",")+")",lineWidth:2})}return k}function q(a){var c=b.cluster(a,.9),d=b.topGeneric(c,1,function(a){return a.getPoints().length}),e=[],f=[];if(1===d.length){e=d[0].item.getPoints();for(var g=0;g<e.length;g++)f.push(e[g].point)}return f}function r(a,c){C.subImageAsCopy(x,b.imageRef(a,c)),F.skeletonize(),u.showSkeleton&&w.overlay(G.dom.binary,360,b.imageRef(a,c))}function s(a,b,c,d){var e,f,g,h,i=0,k=[],l=[],m=Math.ceil(D.x/3);if(a.length>=2){for(e=0;e<a.length;e++)a[e].m00>m&&k.push(a[e]);if(k.length>=2){for(i=k.length,g=q(k),f=0,e=0;e<g.length;e++)f+=g[e].rad;g.length>1&&g.length>=k.length/4*3&&g.length>a.l