void sha1_init(size_t user_kpc) { kpc = user_kpc; load_source(); createDevice(); createkernel(); create_clobj(); }
/*----------------------------------------------------------------------------*/ int gauss_frame(my1IFrame *src, my1IFrame *dst, float sigma, float *over) { my1Kernel kernel; /* computing MY 2D gaussian smoothing kernel */ int loop = 0, loop2, index = 0; float temp = 1.0, corner; float mult, value; while(temp>THRESH) { temp = fgaussian2d(loop,loop,sigma); corner = temp; loop++; } value = 1.0/corner; int windowsize = (loop*2)-1; int count = windowsize/2; int length = windowsize*windowsize; float *pcoeff = (float*) malloc(length*sizeof(float)); if(pcoeff==0x0) return -1; for(loop=0;loop<windowsize;loop++) { for(loop2=0;loop2<windowsize;loop2++) { if(over) mult = value * (int)fgaussian2d(loop-count, loop2-count, sigma); else mult = fgaussian2d(loop-count, loop2-count, sigma); pcoeff[index++] = mult; } } if(over) *over = value; if(createkernel(&kernel,windowsize)==0x0) { free(pcoeff); return -1; } setkernel(&kernel, pcoeff); kernel.orig_x = count; kernel.orig_y = count; free(pcoeff); correlate_frame(src, dst, &kernel); freekernel(&kernel); return 0; }
/*----------------------------------------------------------------------------*/ int laplace_frame(my1IFrame *src, my1IFrame *dst) { float coeff[] = { 0.0,-1.0,0.0, -1.0,4.0,-1.0, 0.0,-1.0,0.0 }; my1Kernel kernel; if(createkernel(&kernel,3)==0x0) return -1; setkernel(&kernel,coeff); kernel.orig_x = 1; kernel.orig_y = 1; correlate_frame(src,dst,&kernel); freekernel(&kernel); return 0; }