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
88 KiB
JavaScript

/*! quagga 2015-06-13 */
!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
*/
10 years ago
var b,c,d;return 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(){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.direction=a.D
}else a[0]=b[0],a[1]=b[4],a[2]=b[8],a[3]=b[12],a[4]=b[1],a[5]=b[5],a[6]=b[9],a[7]=b[13],a[8]=b[2],a[9]=b[6],a[10]=b[10],a[11]=b[14],a[12]=b[3],a[13]=b[7],a[14]=b[11],a[15]=b[15];return a},k.invert=function(a,b){var c=b[0],d=b[1],e=b[2],f=b[3],g=b[4],h=b[5],i=b[6],j=b[7],k=b[8],l=b[9],m=b[10],n=b[11],o=b[12],p=b[13],q=b[14],r=b[15],s=c*h-d*g,t=c*i-e*g,u=c*j-f*g,v=d*i-e*h,w=d*j-f*h,x=e*j-f*i,y=k*p-l*o,z=k*q-m*o,A=k*r-n*o,B=l*q-m*p,C=l*r-n*p,D=m*r-n*q,E=s*D-t*C+u*B+v*A-w*z+x*y;return E?(E=1/E,a[0]=(h*D-i*C+j*B)*E,a[1]=(e*C-d*D-f*B)*E,a[2]=(p*x-q*w+r*v)*E,a[3]=(m*w-l*x-n*v)*E,a[4]=(i*A-g*D-j*z)*E,a[5]=(c*D-e*A+f*z)*E,a[6]=(q*u-o*x-r*t)*E,a[7]=(k*x-m*u+n*t)*E,a[8]=(g*C-h*A+j*y)*E,a[9]=(d*A-c*C-f*y)*E,a[10]=(o*w-p*u+r*s)*E,a[11]=(l*u-k*w-n*s)*E,a[12]=(h*z-g*B-i*y)*E,a[13]=(c*B-d*z+e*y)*E,a[14]=(p*t-o*v-q*s)*E,a[15]=(k*v-l*t+m*s)*E,a):null},k.adjoint=function(a,b){var c=b[0],d=b[1],e=b[2],f=b[3],g=b[4],h=b[5],i=b[6],j=b[7],k=b[8],l=b[9],m=b[10],n=b[11],o=b[12],p=b[13],q=b[14],r=b[15];return a[0]=h*(m*r-n*q)-l*(i*r-j*q)+p*(i*n-j*m),a[1]=-(d*(m*r-n*q)-l*(e*r-f*q)+p*(e*n-f*m)),a[2]=d*(i*r-j*q)-h*(e*r-f*q)+p*(e*j-f*i),a[3]=-(d*(i*n-j*m)-h*(e*n-f*m)+l*(e*j-f*i)),a[4]=-(g*(m*r-n*q)-k*(i*r-j*q)+o*(i*n-j*m)),a[5]=c*(m*r-n*q)-k*(e*r-f*q)+o*(e*n-f*m),a[6]=-(c*(i*r-j*q)-g*(e*r-f*q)+o*(e*j-f*i)),a[7]=c*(i*n-j*m)-g*(e*n-f*m)+k*(e*j-f*i),a[8]=g*(l*r-n*p)-k*(h*r-j*p)+o*(h*n-j*l),a[9]=-(c*(l*r-n*p)-k*(d*r-f*p)+o*(d*n-f*l)),a[10]=c*(h*r-j*p)-g*(d*r-f*p)+o*(d*j-f*h),a[11]=-(c*(h*n-j*l)-g*(d*n-f*l)+k*(d*j-f*h)),a[12]=-(g*(l*q-m*p)-k*(h*q-i*p)+o*(h*m-i*l)),a[13]=c*(l*q-m*p)-k*(d*q-e*p)+o*(d*m-e*l),a[14]=-(c*(h*q-i*p)-g*(d*q-e*p)+o*(d*i-e*h)),a[15]=c*(h*m-i*l)-g*(d*m-e*l)+k*(d*i-e*h),a},k.determinant=function(a){var b=a[0],c=a[1],d=a[2],e=a[3],f=a[4],g=a[5],h=a[6],i=a[7],j=a[8],k=a[9],l=a[10],m=a[11],n=a[12],o=a[13],p=a[14],q=a[15],r=b*g-c*f,s=b*h-d*f,t=b*i-e*f,u=c*h-d*g,v=c*i-e*g,w=d*i-e*h,x=j*o-k*n,y=j*p-l*n,z=j*q-m*n,A=k*p-l*o,B=k*q-m*o,C=l*q-m*p;return r*C-s*B+t*A+u*z-v*y+w*x},k.multiply=function(a,b,c){var d=b[0],e=b[1],f=b[2],g=b[3],h=b[4],i=b[5],j=b[6],k=b[7],l=b[8],m=b[9],n=b[10],o=b[11],p=b[12],q=b[13],r=b[14],s=b[15],t=c[0],u=c[1],v=c[2],w=c[3];return a[0]=t*d+u*h+v*l+w*p,a[1]=t*e+u*i+v*m+w*q,a[2]=t*f+u*j+v*n+w*r,a[3]=t*g+u*k+v*o+w*s,t=c[4],u=c[5],v=c[6],w=c[7],a[4]=t*d+u*h+v*l+w*p,a[5]=t*e+u*i+v*m+w*q,a[6]=t*f+u*j+v*n+w*r,a[7]=t*g+u*k+v*o+w*s,t=c[8],u=c[9],v=c[10],w=c[11],a[8]=t*d+u*h+v*l+w*p,a[9]=t*e+u*i+v*m+w*q,a[10]=t*f+u*j+v*n+w*r,a[11]=t*g+u*k+v*o+w*s,t=c[12],u=c[13],v=c[14],w=c[15],a[12]=t*d+u*h+v*l+w*p,a[13]=t*e+u*i+v*m+w*q,a[14]=t*f+u*j+v*n+w*r,a[15]=t*g+u*k+v*o+w*s,a},k.mul=k.multiply,k.translate=function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p=c[0],q=c[1],r=c[2];return b===a?(a[12]=b[0]*p+b[4]*q+b[8]*r+b[12],a[13]=b[1]*p+b[5]*q+b[9]*r+b[13],a[14]=b[2]*p+b[6]*q+b[10]*r+b[14],a[15]=b[3]*p+b[7]*q+b[11]*r+b[15]):(d=b[0],e=b[1],f=b[2],g=b[3],h=b[4],i=b[5],j=b[6],k=b[7],l=b[8],m=b[9],n=b[10],o=b[11],a[0]=d,a[1]=e,a[2]=f,a[3]=g,a[4]=h,a[5]=i,a[6]=j,a[7]=k,a[8]=l,a[9]=m,a[10]=n,a[11]=o,a[12]=d*p+h*q+l*r+b[12],a[13]=e*p+i*q+m*r+b[13],a[14]=f*p+j*q+n*r+b[14],a[15]=g*p+k*q+o*r+b[15]),a},k.scale=function(a,b,c){var d=c[0],e=c[1],f=c[2];return a[0]=b[0]*d,a[1]=b[1]*d,a[2]=b[2]*d,a[3]=b[3]*d,a[4]=b[4]*e,a[5]=b[5]*e,a[6]=b[6]*e,a[7]=b[7]*e,a[8]=b[8]*f,a[9]=b[9]*f,a[10]=b[10]*f,a[11]=b[11]*f,a[12]=b[12],a[13]=b[13],a[14]=b[14],a[15]=b[15],a},k.rotate=function(a,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D=e[0],E=e[1],F=e[2],G=Math.sqrt(D*D+E*E+F*F);return Math.abs(G)<b?null:(G=1/G,D*=G,E*=G,F*=G,f=Math.sin(d),g=Math.cos(d),h=1-g,i=c[0],j=c[1],k=c[2],l=c[3],m=c[4],n=c[5],o=c[6],p=c[7],q=c[8],r=c[9],s=c[10],t=c[11],u=D*D*h+g,v=E*D*h+F*f,w=F*D*h-E*f,x=D*E*h-F*f,y=E*E*h+g,z=F*E*h+D*f,A=D*F*h+E*f,B=E*F*h-D*f,C=F*F*h+g,a[0]=i*u+m*v+q*w,a[1]=j*u+n*v+r*w,a[2]=k*u+o*v+s*w,a[3]=l*u+p*v+t*w,a[4]=i*x+m*y+q*z,a[5]=j*x+n*y+r*z,a[6]=k*x+o*y+s*z,a[7]=l*x+p*y+t*z,a[8]=i*A+m*B+q*C,a[9]=j*A+n*B+r*C,a[10]=k*A+o*B+s*C,a[11]=l*A+p*B+t*C,c!==a&&(a[12]=c[12],a[13]=c[13],a[14]=c[14],a[15]=c[15]),a)},k.rotateX=function(a,b,c){var d=Math.sin(c),e=Math.cos(
return Math.imul=Math.imul||function(a,b){var c=a>>>16&65535,d=65535&a,e=b>>>16&65535,f=65535&b;return d*f+(c*f+d*e<<16>>>0)|0},a}),d("image_debug",[],function(){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","gl-matrix"],function(a,b,c,d,e,f,g,h){function i(){var c;u=t.halfSample?new a({x:D.size.x/2|0,y:D.size.y/2|0}):D,C=b.calculatePatchSize(t.patchSize,u.size),G.x=u.size.x/C.x|0,G.y=u.size.y/C.y|0,B=new a(u.size,void 0,Uint8Array,!1),x=new a(C,void 0,Array,!0),c=new ArrayBuffer(65536),w=new a(C,new Uint8Array(c,0,C.x*C.y)),v=new a(C,new Uint8Array(c,C.x*C.y*3,C.x*C.y),void 0,!0),E=e(J,{size:C.x},c),A=new a({x:u.size.x/w.size.x|0,y:u.size.y/w.size.y|0},void 0,Array,!0),y=new a(A.size,void 0,void 0,!0),z=new a(A.size,void 0,Int32Array,!0)}function j(){t.useWorker||"undefined"==typeof document||(F.dom.binary=document.createElement("canvas"),F.dom.binary.className="binaryBuffer",t.showCanvas===!0&&document.querySelector("#debug").appendChild(F.dom.binary),F.ctx.binary=F.dom.binary.getContext("2d"),F.dom.binary.width=B.size.x,F.dom.binary.height=B.size.y)}function k(a){var b,c,d,e,f,h,i,j=B.size.x,k=B.size.y,l=-B.size.x,m=-B.size.y;for(b=0,c=0;c<a.length;c++)e=a[c],b+=e.rad,t.showPatches&&g.drawRect(e.pos,w.size,F.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.clone([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++)H.transformMat2(e.box[d],e.box[d],f);t.boxFromPatches.showTransformed&&g.drawPath(e.box,{x:0,y:1},F.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]<j&&(j=e.box[d][0]),e.box[d][0]>l&&(l=e.box[d][0]),e.box[d][1]<k&&(k=e.box[d][1]),e.box[d][1]>m&&(m=e.box[d][1]);for(h=[[j,k],[l,k],[l,m],[j,m]],t.boxFromPatches.showTransformedBox&&g.drawPath(h,{x:0,y:1},F.ctx.binary,{color:"#ff0000",lineWidth:2}),i=t.halfSample?2:1,f=I.invert(f,f),d=0;4>d;d++)H.transformMat2(h[d],h[d],f);for(t.boxFromPatches.showBB&&g.drawPath(h,{x:0,y:1},F.ctx.binary,{color:"#ff0000",lineWidth:2}),d=0;4>d;d++)H.scale(h[d],h[d],i);return h}function l(){b.otsuThreshold(u,B),B.zeroBorder(),t.showCanvas&&B.show(F.dom.binary,255)}function m(){var a,b,d,e,h,i,j,k,l=[];for(a=0;a<G.x;a++)for(b=0;b<G.y;b++)d=w.size.x*a,e=w.size.y*b,q(d,e),v.zeroBorder(),f.init(x.data,0),i=c.create(v,x),j=i.rasterize(0),t.showLabels&&x.overlay(F.dom.binary,Math.floor(360/j.count),{x:d,y:e}),h=x.moments(j.count),l=l.concat(r(h,[a,b],d,e));if(t.showFoundPatches)for(a=0;a<l.length;a++)k=l[a],g.drawRect(k.pos,w.size,F.ctx.binary,{color:"#99ff00",lineWidth:2});return l}function n(a){var b,c,d=[],e=[];for(b=0;a>b;b++)d.push(0);for(c=z.data.length;c--;)z.data[c]>0&&d[z.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 o(a,c){var d,e,f,h,i,j=[],l=[],m=[0,1,1],n=[0,0,0];for(d=0;d<a.length;d++){for(f=z.data.length,j.length=0;f--;)z.data[f]===a[d].label&&(h=A.data[f],j.push(h));if(i=k(j),i&&(l.push(i),t.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,w.size,F.ctx.binary,{color:"rgb("+n.join(",")+")",lineWidth:2})}return l}function p(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 q(a,c){B.subImageAsCopy(w,b.imageRef(a,c)),E.skeletonize(),t.showSkeleton&&v.overlay(F.dom.binary,360,b.imageRef(a,c))}function r(a,b,c,d){var e,f,g,h,i=0,j=[],k=[],l=Math.ceil(C.x/3);if(a.length>=2){for(e=0;e<a.