All pastes #441490 Raw Edit

Untitled

public text v1 · immutable
·published 2007-04-15 18:51 UTC
rendered paste body
void harris (void *yuv, int width, int height, void *pt,int k, int tr) {
    float dx,dy,dxy;
    int tmp;
    float  tmpdx, tmpdy, tmpdxy;
    unsigned char *pixels[ 3 ];
    unsigned char *point[ 3 ];
    pixels[ 0 ] = ( unsigned char* ) yuv;
    point[0] = ( unsigned char* ) pt;
    int size = width*height;
    float GW[3][3];
    GW[0][0] = 0.04; GW[0][1] = 0.12; GW[0][2] = 0.04;
    GW[1][0] = 0.12; GW[1][1] = 0.36; GW[1][2] = 0.12;
    GW[2][0] = 0.04; GW[2][1] = 0.12; GW[2][2] = 0.04;
    for ( int x=width+2; x < size - width -2; x=x+2) {
        dx = 0; dy = 0; dxy = 0;
        for (int j=-1;j<2; j=j+2) {
                for (int i=-1;i<2; i++) {
                        tmp = x+(2*i) + width*j*2;
                        tmpdx=pixels[0][tmp+2] - pixels[0][tmp];
                        tmpdy=pixels[0][tmp - width] - pixels[0][tmp];
                        tmpdxy = pixels[0][tmp - width +2] - pixels[0][tmp];
//                      dx +=  ( pixels[0][x+(2*i)+2 + width*j*2] - pixels[0][x+(2*i) + width*j*2] )*( pixels[0][x+(2*i)+2 + width*j*2] - pixels[0][x+(2*i) + w
//                      dx +=  ( pixels[0][x+(i*2)+2 + width*j*2] - pixels[0][x+(i*2) + width*j*2] );
                        dx +=  tmpdx*tmpdx * GW[j+2][i+2];
                        dy +=  tmpdy * tmpdy * GW[j+2][i+2];
                        dxy += tmpdxy * tmpdxy * GW[j+2][i+2];
                }
        }
        point[0][x] = ((dx*dy-dxy*dxy) - k*(dx+dy)*(dx+dy));
//      cout <<  dx << " " << dy << " " << dxy << endl;
    }
}