pike.git / src / modules / Image / match.h

version» Context lines:

pike.git/src/modules/Image/match.h:27:    type==2 : (int|float scale, needle,    haystack_cert, needle_cert)    type==3 : (int|float scale, needle, haystack_avoid, int foo)    type==4 : (int|float scale, needle,    haystack_cert, needle_cert,    haystack_avoid, int foo) */       int xs,ys, y, x; /* for this & img */    int nxs,nys, ny, nx; /* for neddle */    int foo=0; -  float scale; +  double scale;    int needle_average=0;    int needle_size=0;       if (!THIS->img) { error("no image\n"); return; }    this=THIS;    haystacki=this->img;    haystack=this;    if (!args) { error("Missing arguments to image->"NAME"\n"); return; }    else if (args<2) { error("Too few arguments to image->"NAME"\n"); return; }    else    {    if (sp[-args].type==T_INT) -  scale=sp[-args].u.integer; +  scale = (double)sp[-args].u.integer;    else if (sp[-args].type==T_FLOAT) -  scale=sp[-args].u.float_number; +  scale = sp[-args].u.float_number;    else    error("Illegal argument 1 to image->"NAME"\n");       if ((sp[1-args].type!=T_OBJECT)    || !(needle=    (struct image*)get_storage(sp[1-args].u.object,image_program)))    error("Illegal argument 2 to image->"NAME"()\n");       if ((needle->xsize>haystack->xsize)||    (needle->ysize>haystack->ysize))
pike.git/src/modules/Image/match.h:165:    int tempavr=0;\    if (AVOID_IS_TOO_BIG) \    {\    int k=0; \    imgi[k=i+(nys/2)*xs+(nxs/2)].r=0;\    imgi[k].g=100; imgi[k].b=0;\    }\    else\    {\    NORMCODE;\ -  tempavr=(int)(((float)tempavr)/(3*needle_size)); \ +  tempavr = DOUBLE_TO_INT(((double)tempavr)/(3*needle_size)); \    for(ny=0; ny<nys; ny++) \    for(nx=0; nx<nxs; nx++) \    { \    int j=i+ny*xs+nx; \    int h=0;\    int n=0;\    sum+= \    (MAXIMUM(CERTI1 R1, CERTI1 R1) * PIXEL_VALUE_DISTANCE(r))+ \    (MAXIMUM(CERTI1 G1, CERTI1 G1) * PIXEL_VALUE_DISTANCE(g))+ \    (MAXIMUM(CERTI1 B1, CERTI1 B1) * PIXEL_VALUE_DISTANCE(b)); \    } \    imgi[i+(nys/2)*xs+(nxs/2)].r=\ -  (int)(255.99/(1.0+((((float)scale) * SCALE_MODIFY((float)sum))))); \ +  DOUBLE_TO_INT(255.99/(1.0+((((double)scale) * SCALE_MODIFY((double)sum))))); \    }\    }         #define AVOID_IS_TOO_BIG ((haystack_avoidi[i].r)>(foo))       if (type==1)    DOUBLE_LOOP(0,1,1, *1, *1, *1)    else if (type==2)    DOUBLE_LOOP(0, haystack_certi[j], needle_certi[ny*nxs+nx],.r,.g,.b)