void Panorama::run() { open_images(); calc_features(); create_matchs(); remove_outliers(); calc_camera_params(); calc_gains(); blend_images(); }
int cFeature::getFeatureDouble(string strName, vector<double>& vec) { if (logging) { logfile << "Going to calculate feature " << strName << " ..." << endl; } if (calc_features(strName) < 0) { if (logging) { logfile << "Failed to calculate feature " << strName << ": " << GErrorStr << endl; } return -1; } vec = getmapDoubleData(strName); if (logging) { logfile << "Calculated feature " << strName << ":"; appendtolog(vec); logfile << endl; } return vec.size(); }
main (int argc, char**argv) { lgopen(argc,argv); float prediction; unsigned int i,h; time_t start, stop; double diff; int TOTAL_FEATURES = atoi(argv[5]); /* start timer */ start = time(NULL); mysqlD.server = argv[1]; // where the mysql database is mysqlD.user = argv[2]; // the root user of mysql mysqlD.password = argv[3]; // the password of the root user in mysql mysqlD.database = argv[4]; // the databse to pick // connect to the mysql database conn = mysql_connection_setup(mysqlD); sprintf(query_string,"SELECT count(DISTINCT item_id) FROM ratings"); res = mysql_perform_query(conn,query_string); while ((row = mysql_fetch_row(res)) !=NULL) { TOTAL_MOVIES=atoi(row[0]); } //clean up the database result set mysql_free_result(res); sprintf(query_string,"SELECT count(DISTINCT user_id) FROM user_mapping"); res = mysql_perform_query(conn,query_string); while ((row = mysql_fetch_row(res)) !=NULL) { TOTAL_CUSTOMERS=atoi(row[0]); } //clean up the database result set mysql_free_result(res); sprintf(query_string,"SELECT count(*) FROM train"); res = mysql_perform_query(conn,query_string); while ((row = mysql_fetch_row(res)) !=NULL) { TOTAL_RATES=atoi(row[0]); } //clean up the database result set mysql_free_result(res); sprintf(query_string,"SELECT count(*) FROM probe"); res = mysql_perform_query(conn,query_string); while ((row = mysql_fetch_row(res)) !=NULL) { TOTAL_PROBES=atoi(row[0]); } //clean up the database result set mysql_free_result(res); sprintf(query_string,"SELECT avg(rating_value) FROM train"); res = mysql_perform_query(conn,query_string); while ((row = mysql_fetch_row(res)) !=NULL) { GLOBAL_AVERAGE=atof(row[0]); } //clean up the database result set mysql_free_result(res); // Get maximum and minimum ratings from the ratings table sprintf(query_string,"SELECT MAX(rating_value) FROM ratings"); res = mysql_perform_query(conn,query_string); while ((row = mysql_fetch_row(res)) !=NULL) { max_r=atoi(row[0]); } /* clean up the database result set */ mysql_free_result(res); sprintf(query_string,"SELECT MIN(rating_value) FROM ratings"); res = mysql_perform_query(conn,query_string); while ((row = mysql_fetch_row(res)) !=NULL) { min_r=atoi(row[0]); } /* clean up the database result set */ mysql_free_result(res); // ****** SVD *********** // movie_features = ( float** )malloc(TOTAL_MOVIES * sizeof(float *)); if(movie_features == NULL) { fprintf(stderr, "out of memory\n"); exit(-1); } for(i = 0; i < TOTAL_MOVIES; i++) { movie_features[i] = ( float* )malloc(TOTAL_FEATURES * sizeof(float)); if(movie_features[i] == NULL) { fprintf(stderr, "out of memory\n"); exit(-1); } } w = ( float** )malloc(TOTAL_MOVIES * sizeof(float *)); if(w == NULL) { fprintf(stderr, "out of memory\n"); exit(-1); } for(i = 0; i < TOTAL_MOVIES; i++) { w[i] = ( float* )malloc(TOTAL_FEATURES * sizeof(float)); if(w[i] == NULL) { fprintf(stderr, "out of memory\n"); exit(-1); } } cust_features = ( float** )malloc(TOTAL_CUSTOMERS * sizeof(float *)); if(cust_features == NULL) { fprintf(stderr, "out of memory\n"); exit(-1); } for(i = 0; i < TOTAL_CUSTOMERS; i++) { cust_features[i] = ( float* )malloc(TOTAL_FEATURES * sizeof(float)); if(cust_features[i] == NULL) { fprintf(stderr, "out of memory\n"); exit(-1); } } sum_w = ( float** )malloc(TOTAL_CUSTOMERS * sizeof(float *)); if(sum_w == NULL) { fprintf(stderr, "out of memory\n"); exit(-1); } for(i = 0; i < TOTAL_CUSTOMERS; i++) { sum_w[i] = ( float* )malloc(TOTAL_FEATURES * sizeof(float)); if(sum_w[i] == NULL) { fprintf(stderr, "out of memory\n"); exit(-1); } } m_bias = (float *)malloc(sizeof(float)*TOTAL_MOVIES); c_bias = (float *)malloc(sizeof(float)*TOTAL_CUSTOMERS); ei = (float *)malloc(sizeof(float)*TOTAL_CUSTOMERS); user_movies = ( int** )malloc(TOTAL_CUSTOMERS * sizeof(int *)); if(user_movies == NULL) { fprintf(stderr, "out of memory for user connections\n"); exit(-1); } user_movies_size = (int *)malloc(sizeof(int)*TOTAL_CUSTOMERS); user_ratings = ( int** )malloc(TOTAL_CUSTOMERS * sizeof(int *)); if(user_ratings == NULL) { fprintf(stderr, "out of memory for user connections\n"); exit(-1); } user_probe_movies = ( int** )malloc(TOTAL_CUSTOMERS * sizeof(int *)); if(user_probe_movies == NULL) { fprintf(stderr, "out of memory for user connections\n"); exit(-1); } user_probe_size = (int *)malloc(sizeof(int)*TOTAL_CUSTOMERS); // ***************** // /* stop timer and display time */ stop = time(NULL); diff = difftime(stop, start); // printf("Defined global arrays: Time elapsed is %f sec\n", diff); // *** CREATE PROBE *** // /* start timer */ start = time(NULL); probe_customers = (int *)malloc(sizeof(int)*TOTAL_PROBES); probe_movies = (int *)malloc(sizeof(int)*TOTAL_PROBES); probe_real_scores = (int *)malloc(sizeof(int)*TOTAL_PROBES); sprintf(query_string,"select user_id,item_id,rating_value FROM probe"); res = mysql_perform_query(conn,query_string); h=0;////just a counter while ((row = mysql_fetch_row(res)) !=NULL) { probe_customers[h]=atoi(row[0]); probe_movies[h]=atoi(row[1]); probe_real_scores[h]=atoi(row[2]); h++; } /* clean up the database result set */ mysql_free_result(res); // ******************** // /* stop timer and display time */ stop = time(NULL); diff = difftime(stop, start); // printf("Created Probe arrays: Time elapsed is %f sec\n", diff); // start timer start = time(NULL); // RUN SVD // lg("\n\nCalculating features...\n"); sscanf(argv[0], "./%s", algorithm_name); lg("%s\t\t",algorithm_name); calc_features(TOTAL_FEATURES); /* stop timer and display time */ stop = time(NULL); diff = difftime(stop, start); // printf("\nTrained SVD in %f sec\n", diff); lg("%f sec\n", diff); exit(-1); // *** SAVE FEATURES *** // lg("\n\nSaving features files...\n"); // save_new_features_files(); // save_predictions(); //////save_residuals(); // stop timer and display time stop = time(NULL); diff = difftime(stop, start); // lg("\nPredictions: Time elaspsed is %f sec\n", diff); exit(0); }