Mat Kernel::extractDescriptors(Mat image){ int w = image.cols, h=image.rows, size=32, delta=16; Mat result, temp, img; int i = (patches/14)*delta, j = (patches%14)*delta; if(filter=="DoG") img = DoGFilter(image); else if(filter=="CSDN") img = CSDNFilter(image); else if(filter=="Gaussian") img = GaussianFilter(image); else cerr << "Error, no filter choosed" << endl; img = img(Rect(i,j,size,size)); //img.convertTo(img, CV_32F); // Retirar isso depois //dct(img,img); // Isso tambem if(descriptor=="SIFT") calcSIFTDescriptors(img,temp); else if(descriptor=="MLBP") calcLBPHistogram(img,temp); else cerr << "Error, no descriptor choosed" << endl; normalize(temp,temp,1); result = temp.t(); return result; }
void testNoise (void) { GIMAGE* input = Gtype(readGrey("./TestRepo/00.Test_Images/lena.bmp")); GIMAGE* output = createImage(input->width,input->height,1); double *pdf = new double [NOISE_LENGTH]; GaussianFilter (NOISE_LENGTH/2, (double)NOISE_LENGTH/3.0, 0, NOISE_LENGTH, pdf); // Gaussian white noise // Uniform White noise //for (int i = 0; i < NOISE_LENGTH; i++) // pdf [i] = 1.0/NOISE_LENGTH; // Impulse //for (int i = 0; i < NOISE_LENGTH; i++) // pdf [i] = 0; //pdf [(int)NOISE_LENGTH-1] = 1; double *inv_cdf = inverse_cdf (-NOISE_AMP, NOISE_AMP, NOISE_LENGTH, pdf); addWhiteNoise (input, NOISE_LENGTH, inv_cdf, output); writeImage ("./TestRepo/noise.bmp", output); }
// GaussianFilterByFreq ----------------------- int GaussianFilterByFreq(quint16 * pnData, long lPoints, long InFreq,long CutoffFreq) { return GaussianFilter(pnData,lPoints,double(CutoffFreq)/InFreq); };