Ejemplo n.º 1
0
void printVariableValuesOfConfig(SPConfig config){
	SP_CONFIG_MSG msg = SP_CONFIG_SUCCESS;
	char imagePath[1024];
	char pcaPath[1024];

	printf("***********printing config values***********\n");
	if(config == NULL){
		printf("config is NULL\n");
		return;
	}

	SP_CONFIG_MSG getImagePathMSG = spConfigGetImagePath(imagePath, config, 1);
	SP_CONFIG_MSG getPCAPathMSG = spConfigGetPCAPath(pcaPath, config);

	printf("spImagesDirectory = %s\n",spConfigGetspImageDirectory(config));
	printf("spImagesPrefix = %s\n",spConfigGetspImagesPrefix(config));
	printf("spImagesSuffix = %s\n",spConfigGetspImagesSuffix(config));
	printf("spNumOfImages = %d\n",spConfigGetNumOfImages(config, &msg)); //X
	printf("spPCADimension = %d\n",spConfigGetPCADim(config, &msg)); //V
	printf("spPCAFilename = %s\n",spConfigGetspPCAFilename(config)); //V
	printf("spNumOfFeatures = %d\n",spConfigGetNumOfFeatures(config, &msg)); //V
	printf("spNumOfSimilarImages = %d\n",spConfigGetspNumOfSimilarImages(config)); //V
	printf("spKNN = %d\n",spConfigGetspKNN(config)); //V
	printf("spLoggerLevel = %d\n",spConfigGetspLoggerLevel(config)); //V
	printf("spLoggerFilename = %s\n",spConfigGetspLoggerFilename(config)); //V


	if(spConfigGetspKDTreeSplitMethod(config) == MAX_SPREAD){
		printf("spKDTreeSplitMethod = MAX_SPREAD\n");
	}else if(spConfigGetspKDTreeSplitMethod(config) == RANDOM){
		printf("spKDTreeSplitMethod = RANDOM\n");
	}else if(spConfigGetspKDTreeSplitMethod(config) == INCREMENTAL){
		printf("spKDTreeSplitMethod = INCREMENTAL\n");
	}else {
		printf("spConfigGetspKDTreeSplitMethod not working\n");
	}


	if(spConfigIsExtractionMode(config,&msg) == true){
		printf("spExtractionMode = %s\n","true");
	}else if(spConfigIsExtractionMode(config,&msg) == false){
		printf("spExtractionMode = %s\n","false");
	}else{
		printf("spConfigIsExtractionMode not working\n");
	}

	if(spConfigMinimalGui(config,&msg) == true){
		printf("spMinimalGUI = %s\n","true");
	}else if(spConfigMinimalGui(config,&msg) == false){
		printf("spMinimalGUI = %s\n","false");
	}else{
		printf("spConfigMinimalGui not working\n");
	}

}
Ejemplo n.º 2
0
int main(char * args){
//Make sure that the logger was set at the beginning of the main function


//start

// COMMAND LINE ARGUMENT with the Error messages
	char * configFilename;
	if (args == NULL){
		configFilename = "spcbir.config";
	}
	else{
		configFilename = args;
	}
	//“Invalid command line : use -c <config_filename>” - check

//init from config
	SP_CONFIG_MSG spConfigMsg;
	SPConfig configFile = spConfigCreate(configFilename,spConfigMsg);  //should destroy it
	if (spConfigMsg == SP_CONFIG_CANNOT_OPEN_FILE){
		if (configFilename == "spcbir.config" ){
			//“The default configuration file spcbir.config couldn’t be open” +new line + exit?
		}
		else{
			//#2 “The configuration file <filename> couldn’t be open” + new line +exit?
		}
	}


	//variables

	int NumOfImages = spConfigGetNumOfImages(configFile,spConfigMsg);
	char * imagePath =(char*) malloc (1024*sizeof(char));  // should free it
	int spKNN = spConfigGetspKNN(configFile,spConfigMsg);
	int NumOfFeatures =  spConfigGetNumOfFeatures(configFile,spConfigMsg);
	int * imgArray = (int*)malloc (sizeof(int)*configFile,spConfigMsg); // should free it
	int NumOfSimilarImages=spConfigGetNumOfSimilarImages(configFile,spConfigMsg);
	int * SimilarImagesArr = (int*)malloc (NumOfSimilarImages*sizeof(int)); // should free it
	int i=0;
	for (i=0;i<NumOfSimilarImages;i++){
		SimilarImagesArr[i]=0;
	}
	i=0;
	for (i=0; i<NumOfImages;i++){
		imgArray[i]=0;
	}
	i=0;
	SPPoint * queryFeatures = (SPPoint*) malloc (NumOfFeatures*sizeof (SPPoint)); // should free it
	char * queryImgPath =(char*)  malloc (1024*sizeof(char)); // should free it

	int max=0;
	int j=0;
// extract mode?
	if (spConfigIsExtractionMode(configFile,spConfigMsg)){
		// yes:

		//extract features

		// done?

		// no: repeat

		// yes: save to directory

	}
	else{
		//no:

		//	extract from file
	}

// init data structures

// recive command

// query?
	query:

    printf("Please enter an image path:\n");
    scanf("%s", queryImgPath);

// no: exit
if (queryImgPath== '<>'){
	goto ending;
}

// get query features
queryFeatures = getImageFeatures(queryImgPath,int index,int* numOfFeats);
for (i=0;i<NumOfFeatures;i++){
	spKNNSearch( tree,  queryFeatures[i],  spKNN, imgArray);
}
i=0;

// get most similar images
for (i=0;i<NumOfSimilarImages;i++){
	for (j=0;j<NumOfFeatures;j++){
		if (imgArray[j]>imgArray[max]){
			max = j;
		}
	}
	SimilarImagesArr[i]= max;
	imgArray[max] =-1;
}

i=0;

// show results
if(spConfigMinimalGui(configFile,spConfigMsg)){

	for (i=0;i<NumOfSimilarImages;i++){
		spConfigGetImagePath(imagePath, configFile, SimilarImagesArr[i]);
		showImage(imagePath);
		//wait
	}
}
else{
	printf("Best candidates for - %d - are:\n",queryImgPath);
	for (i=0;i<NumOfSimilarImages;i++){
		spConfigGetImagePath(imagePath, configFile, SimilarImagesArr[i]);
		printf ("%d\n",imagePath);

	}
}
goto query;
ending:
// ending
//frees ();

spConfigDestroy (configFilename);
free (imagePath);
free (SimilarImagesArr);
free (queryFeatures);
free (queryImgPath);
free (imgArray);

return 0;




};