%PDF- %PDF-
Direktori : /proc/985914/root/data/old/home/stash/stash/atlassian-stash/static/lib/ccv/ |
Current File : //proc/985914/root/data/old/home/stash/stash/atlassian-stash/static/lib/ccv/ccv-min.js |
if(parallable===undefined){var parallable=function(B,A){parallable.core[A.toString()]=A().core;return function(){var D;var F,C,H;if(arguments.length>1){F=arguments[arguments.length-2];C=arguments[arguments.length-1];H=new Array(arguments.length-2);for(D=0;D<arguments.length-2;D++){H[D]=arguments[D]}}else{F=arguments[0].async;C=arguments[0].worker;H=arguments[0];delete H.async;delete H.worker;H=[H]}var E={shared:{}};var G=A.apply(E,H);if(F){return function(J,K){var L=0;var P=new Array(C);var I=G.pre.apply(E,[C]);for(D in E.shared){if(typeof E.shared[D]=="function"){delete E.shared[D]}else{if(E.shared[D].tagName!==undefined){delete E.shared[D]}}}for(D=0;D<C;D++){var O=new Worker(B);O.onmessage=(function(Q){return function(R){P[Q]=(typeof R.data=="string")?JSON.parse(R.data):R.data;L++;if(L==C){J(G.post.apply(E,[P]))}}})(D);var N={input:I[D],name:A.toString(),shared:E.shared,id:D,worker:H.worker_num};try{O.postMessage(N)}catch(M){O.postMessage(JSON.stringify(N))}}}}else{return G.post.apply(E,[[G.core.apply(E,[G.pre.apply(E,[1])[0],0,1])]])}}};parallable.core={}}function get_named_arguments(D,C){if(D.length>1){var A={};for(var B=0;B<C.length;B++){A[C[B]]=D[B]}return A}else{if(D.length==1){return D[0]}else{return{}}}}var ccv={pre:function(C){if(C.tagName.toLowerCase()=="img"){var B=document.createElement("canvas");document.body.appendChild(C);B.width=C.offsetWidth;B.style.width=C.offsetWidth.toString()+"px";B.height=C.offsetHeight;B.style.height=C.offsetHeight.toString()+"px";document.body.removeChild(C);var A=B.getContext("2d");A.drawImage(C,0,0);return B}return C},grayscale:function(B){var A=B.getContext("2d");var G=A.getImageData(0,0,B.width,B.height);var F=G.data;var E,D,C=B.width*B.height*4;while(C>0){F[C-=4]=F[E=C+1]=F[D=C+2]=(F[C]*0.3+F[E]*0.59+F[D]*0.11)}A.putImageData(G,0,0);return B},array_group:function(L,C){var E,D;var B=new Array(L.length);for(E=0;E<L.length;E++){B[E]={parent:-1,element:L[E],rank:0}}for(E=0;E<L.length;E++){if(!B[E].element){continue}var F=E;while(B[F].parent!=-1){F=B[F].parent}for(D=0;D<L.length;D++){if(E!=D&&B[D].element&&C(B[E].element,B[D].element)){var G=D;while(B[G].parent!=-1){G=B[G].parent}if(G!=F){if(B[F].rank>B[G].rank){B[G].parent=F}else{B[F].parent=G;if(B[F].rank==B[G].rank){B[G].rank++}F=G}var J,I=D;while(B[I].parent!=-1){J=I;I=B[I].parent;B[J].parent=F}I=E;while(B[I].parent!=-1){J=I;I=B[I].parent;B[J].parent=F}}}}}var H=new Array(L.length);var A=0;for(E=0;E<L.length;E++){D=-1;var K=E;if(B[K].element){while(B[K].parent!=-1){K=B[K].parent}if(B[K].rank>=0){B[K].rank=~A++}D=~B[K].rank}H[E]=D}return{index:H,cat:A}},detect_objects:parallable("ccv.js",function(A,H,B,C){if(this.shared!==undefined){var F=get_named_arguments(arguments,["canvas","cascade","interval","min_neighbors"]);this.shared.canvas=F.canvas;this.shared.interval=F.interval;this.shared.min_neighbors=F.min_neighbors;this.shared.cascade=F.cascade;this.shared.scale=Math.pow(2,1/(F.interval+1));this.shared.next=F.interval+1;this.shared.scale_upto=Math.floor(Math.log(Math.min(F.canvas.width/F.cascade.width,F.canvas.height/F.cascade.height))/Math.log(this.shared.scale));var G;for(G=0;G<this.shared.cascade.stage_classifier.length;G++){this.shared.cascade.stage_classifier[G].orig_feature=this.shared.cascade.stage_classifier[G].feature}}function E(L){var J=this.shared.canvas;var K=this.shared.interval;var M=this.shared.scale;var P=this.shared.next;var Q=this.shared.scale_upto;var N=new Array((Q+P*2)*4);var R=new Array((Q+P*2)*4);N[0]=J;R[0]={width:N[0].width,height:N[0].height,data:N[0].getContext("2d").getImageData(0,0,N[0].width,N[0].height).data};var O;for(O=1;O<=K;O++){N[O*4]=document.createElement("canvas");N[O*4].width=Math.floor(N[0].width/Math.pow(M,O));N[O*4].height=Math.floor(N[0].height/Math.pow(M,O));N[O*4].getContext("2d").drawImage(N[0],0,0,N[0].width,N[0].height,0,0,N[O*4].width,N[O*4].height);R[O*4]={width:N[O*4].width,height:N[O*4].height,data:N[O*4].getContext("2d").getImageData(0,0,N[O*4].width,N[O*4].height).data}}for(O=P;O<Q+P*2;O++){N[O*4]=document.createElement("canvas");N[O*4].width=Math.floor(N[O*4-P*4].width/2);N[O*4].height=Math.floor(N[O*4-P*4].height/2);N[O*4].getContext("2d").drawImage(N[O*4-P*4],0,0,N[O*4-P*4].width,N[O*4-P*4].height,0,0,N[O*4].width,N[O*4].height);R[O*4]={width:N[O*4].width,height:N[O*4].height,data:N[O*4].getContext("2d").getImageData(0,0,N[O*4].width,N[O*4].height).data}}for(O=P*2;O<Q+P*2;O++){N[O*4+1]=document.createElement("canvas");N[O*4+1].width=Math.floor(N[O*4-P*4].width/2);N[O*4+1].height=Math.floor(N[O*4-P*4].height/2);N[O*4+1].getContext("2d").drawImage(N[O*4-P*4],1,0,N[O*4-P*4].width-1,N[O*4-P*4].height,0,0,N[O*4+1].width-2,N[O*4+1].height);R[O*4+1]={width:N[O*4+1].width,height:N[O*4+1].height,data:N[O*4+1].getContext("2d").getImageData(0,0,N[O*4+1].width,N[O*4+1].height).data};N[O*4+2]=document.createElement("canvas");N[O*4+2].width=Math.floor(N[O*4-P*4].width/2);N[O*4+2].height=Math.floor(N[O*4-P*4].height/2);N[O*4+2].getContext("2d").drawImage(N[O*4-P*4],0,1,N[O*4-P*4].width,N[O*4-P*4].height-1,0,0,N[O*4+2].width,N[O*4+2].height-2);R[O*4+2]={width:N[O*4+2].width,height:N[O*4+2].height,data:N[O*4+2].getContext("2d").getImageData(0,0,N[O*4+2].width,N[O*4+2].height).data};N[O*4+3]=document.createElement("canvas");N[O*4+3].width=Math.floor(N[O*4-P*4].width/2);N[O*4+3].height=Math.floor(N[O*4-P*4].height/2);N[O*4+3].getContext("2d").drawImage(N[O*4-P*4],1,1,N[O*4-P*4].width-1,N[O*4-P*4].height-1,0,0,N[O*4+3].width-2,N[O*4+3].height-2);R[O*4+3]={width:N[O*4+3].width,height:N[O*4+3].height,data:N[O*4+3].getContext("2d").getImageData(0,0,N[O*4+3].width,N[O*4+3].height).data}}return[R]}function D(V,h,L){var a=this.shared.cascade;var M=this.shared.interval;var c=this.shared.scale;var O=this.shared.next;var N=this.shared.scale_upto;var AA,z,w,m,l,r;var T=1,S=1;var R=[0,1,0,1];var Q=[0,0,1,1];var Z=[];for(AA=0;AA<N;AA++){var v=V[AA*4+O*8].width-Math.floor(a.width/4);var K=V[AA*4+O*8].height-Math.floor(a.height/4);var e=[V[AA*4].width*4,V[AA*4+O*4].width*4,V[AA*4+O*8].width*4];var o=[V[AA*4].width*16-v*16,V[AA*4+O*4].width*8-v*8,V[AA*4+O*8].width*4-v*4];for(z=0;z<a.stage_classifier.length;z++){var W=a.stage_classifier[z].orig_feature;var g=a.stage_classifier[z].feature=new Array(a.stage_classifier[z].count);for(w=0;w<a.stage_classifier[z].count;w++){g[w]={size:W[w].size,px:new Array(W[w].size),pz:new Array(W[w].size),nx:new Array(W[w].size),nz:new Array(W[w].size)};for(r=0;r<W[w].size;r++){g[w].px[r]=W[w].px[r]*4+W[w].py[r]*e[W[w].pz[r]];g[w].pz[r]=W[w].pz[r];g[w].nx[r]=W[w].nx[r]*4+W[w].ny[r]*e[W[w].nz[r]];g[w].nz[r]=W[w].nz[r]}}}for(r=0;r<4;r++){var U=[V[AA*4].data,V[AA*4+O*4].data,V[AA*4+O*8+r].data];var J=[R[r]*8+Q[r]*V[AA*4].width*8,R[r]*4+Q[r]*V[AA*4+O*4].width*4,0];for(l=0;l<K;l++){for(m=0;m<v;m++){var X=0;var d=true;for(z=0;z<a.stage_classifier.length;z++){X=0;var u=a.stage_classifier[z].alpha;var g=a.stage_classifier[z].feature;for(w=0;w<a.stage_classifier[z].count;w++){var Y=g[w];var s,AC=U[Y.pz[0]][J[Y.pz[0]]+Y.px[0]];var t,b=U[Y.nz[0]][J[Y.nz[0]]+Y.nx[0]];if(AC<=b){X+=u[w*2]}else{var AB,P=true;for(AB=0;AB<Y.size;AB++){if(Y.pz[AB]>=0){s=U[Y.pz[AB]][J[Y.pz[AB]]+Y.px[AB]];if(s<AC){if(s<=b){P=false;break}AC=s}}if(Y.nz[AB]>=0){t=U[Y.nz[AB]][J[Y.nz[AB]]+Y.nx[AB]];if(t>b){if(AC<=t){P=false;break}b=t}}}X+=(P)?u[w*2+1]:u[w*2]}}if(X<a.stage_classifier[z].threshold){d=false;break}}if(d){Z.push({x:(m*4+R[r]*2)*T,y:(l*4+Q[r]*2)*S,width:a.width*T,height:a.height*S,neighbor:1,confidence:X})}J[0]+=16;J[1]+=8;J[2]+=4}J[0]+=o[0];J[1]+=o[1];J[2]+=o[2]}}T*=c;S*=c}return Z}function I(Q){var P=this.shared.min_neighbors;var L=this.shared.cascade;var c=this.shared.interval;var d=this.shared.scale;var S=this.shared.next;var J=this.shared.scale_upto;var a,X;for(a=0;a<L.stage_classifier.length;a++){L.stage_classifier[a].feature=L.stage_classifier[a].orig_feature}Q=Q[0];if(!(P>0)){return Q}else{var N=ccv.array_group(Q,function(f,e){var g=Math.floor(f.width*0.25+0.5);return e.x<=f.x+g&&e.x>=f.x-g&&e.y<=f.y+g&&e.y>=f.y-g&&e.width<=Math.floor(f.width*1.5+0.5)&&Math.floor(e.width*1.5+0.5)>=f.width});var W=N.cat;var Y=N.index;var R=new Array(W+1);for(a=0;a<R.length;a++){R[a]={neighbors:0,x:0,y:0,width:0,height:0,confidence:0}}for(a=0;a<Q.length;a++){var b=Q[a];var O=Y[a];if(R[O].neighbors==0){R[O].confidence=b.confidence}++R[O].neighbors;R[O].x+=b.x;R[O].y+=b.y;R[O].width+=b.width;R[O].height+=b.height;R[O].confidence=Math.max(R[O].confidence,b.confidence)}var M=[];for(a=0;a<W;a++){var U=R[a].neighbors;if(U>=P){M.push({x:(R[a].x*2+U)/(2*U),y:(R[a].y*2+U)/(2*U),width:(R[a].width*2+U)/(2*U),height:(R[a].height*2+U)/(2*U),neighbors:R[a].neighbors,confidence:R[a].confidence})}}var T=[];for(a=0;a<M.length;a++){var b=M[a];var Z=true;for(X=0;X<M.length;X++){var V=M[X];var K=Math.floor(V.width*0.25+0.5);if(a!=X&&b.x>=V.x-K&&b.y>=V.y-K&&b.x+b.width<=V.x+V.width+K&&b.y+b.height<=V.y+V.height+K&&(V.neighbors>Math.max(3,b.neighbors)||b.neighbors<3)){Z=false;break}}if(Z){T.push(b)}}return T}}return{pre:E,core:D,post:I}})};onmessage=function(C){var D=(typeof C.data=="string")?JSON.parse(C.data):C.data;var B={shared:D.shared};var A=parallable.core[D.name].apply(B,[D.input,D.id,D.worker]);try{postMessage(A)}catch(E){postMessage(JSON.stringify(A))}};