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;
} 
Exemple #2
0
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);		
}
Exemple #3
0
// GaussianFilterByFreq -----------------------
int GaussianFilterByFreq(quint16 * pnData, long lPoints,
	long InFreq,long CutoffFreq)
	{
	return GaussianFilter(pnData,lPoints,double(CutoffFreq)/InFreq);
	};