/* Função que busca uma "bola" em 'roiImg'/'roiImgGray'. Primeiro calcula o score circular utilizando a transformada circular e depois calcula o score de histograma para formar um score final e pega o circula com o maior score encontrado. */ acmPoint findBall(Mat &roiImg, Mat &roiImgGray, int minr, int maxr, bool filtraHistograma, double thScore){ int thNCirc = 10; int thCanny = 100; vector<acmPoint> circles; //Transformada circular, para encontrar elementos com alta //circularidada na iamgem/ houghC1(roiImgGray,minr,maxr,thCanny,circles,thNCirc,thScore); //Se o filtro por histograma estiver habilitado, //então calcula o score de histograma. if(filtraHistograma) calcHistogram(roiImg, circles); //Retorna o melhor candidato. return circles[0]; }
int main(int argc, char** argv){ if(argc != 3) { printf("Usage: list_gen [amount][any number]\nExample: ./list_gen 5 1229"); return EXIT_FAILURE; } int amount_people= atoi(argv[1]); time_t startRand=atoi(argv[2]); srand(time(&startRand)); person_t* people=(person_t*)malloc(amount_people*sizeof(person_t)); person_t* people_sorted=(person_t*)malloc(amount_people*sizeof(person_t)); int* count_sort_hist=(int*)malloc(MAX_AGE*sizeof(int)); int* tmp_hist=(int*)malloc(MAX_AGE*sizeof(int)); generate_list(people, amount_people); printPeople(people,amount_people); /*sort*/ printf("\n----------------------------\n"); calcHistogram(people, count_sort_hist,amount_people); prefixSum(tmp_hist, count_sort_hist); countSortLastStage(people, people_sorted, tmp_hist, amount_people); printPeople(people_sorted,amount_people); //finalization free(people); free(people_sorted); free(count_sort_hist); free(tmp_hist); return EXIT_SUCCESS; }
int main() { int numScores = 0; int scores[100]; int* numScoresPointer = &numScores; readScores(scores, numScoresPointer); printf("\n\nScores:\n"); displayScores(scores, numScores); int numFreq = 0; struct freq frequencies[numScores]; int i; for (i = 0; i < numScores; i++) { (*(frequencies + i)).number = 0; } int* numFreqPointer = &numFreq; calcHistogram(frequencies, numFreqPointer, scores, numScores); printf("\n\n\nUnsorted Histogram:\n"); displayHistogram(frequencies, numFreq); sortHistogram(frequencies, numFreq); printf("\n\n\nSorted Histogram:\n"); displayHistogram(frequencies, numFreq); return 0; }
int main(int argc, char const* argv[]) { sdviz::Config config; config.http_port = 8082; config.ws_port = 8083; sdviz::start( config ); sdviz::Image org_image = loadTestImage(); sdviz::Image image = allocateImage( org_image.getWidth(), org_image.getHeight() ); size_t const image_size = 3 * org_image.getWidth() * org_image.getHeight(); std::copy( org_image.getBuffer(), org_image.getBuffer() + image_size, image.getBuffer() ); sdviz::Canvas canvas{ image.getWidth(), image.getHeight() }; canvas.drawImage( image, std::make_tuple( 0.0, 0.0 ) ); auto image_element = sdviz::CanvasElement::create( canvas ); sdviz::ChartElement::value_type chart_data{ calcHistogram( image ) }; sdviz::ChartElement chart_element = sdviz::ChartElement::create( chart_data ); double red_slider_value = 0.5; sdviz::SliderElementParam red_slider_param; red_slider_param.label = "RED"; red_slider_param.on_value_changed = [&red_slider_value]( double old_value, double new_value ){ red_slider_value = new_value; }; sdviz::SliderElement red_slider_element = sdviz::SliderElement::create( red_slider_value, red_slider_param ); double blue_slider_value = 0.5; sdviz::SliderElementParam blue_slider_param; blue_slider_param.label = "BLUE"; blue_slider_param.on_value_changed = [&blue_slider_value]( double old_value, double new_value ){ blue_slider_value = new_value; }; sdviz::SliderElement blue_slider_element = sdviz::SliderElement::create( blue_slider_value, blue_slider_param ); double green_slider_value = 0.5; sdviz::SliderElementParam green_slider_param; green_slider_param.label = "GREEN"; green_slider_param.on_value_changed = [&green_slider_value]( double old_value, double new_value ){ green_slider_value = new_value; }; sdviz::SliderElement green_slider_element = sdviz::SliderElement::create( green_slider_value, green_slider_param ); auto slider_container = sdviz::ContainerElement::create( "RGB Sliders", false ); slider_container << red_slider_element << green_slider_element << blue_slider_element; sdviz::ButtonElementParam apply_button_param ; apply_button_param.label = "apply"; apply_button_param.on_value_changed = [&]( bool new_value, bool old_value ){ shiftColors( org_image, image, red_slider_value, blue_slider_value, green_slider_value ); sdviz::Canvas canvas{ image.getWidth(), image.getHeight() }; canvas.drawImage( image, std::make_tuple( 0.0, 0.0 ) ); image_element.setValue( canvas ); sdviz::ChartElement::value_type const chart_data{ calcHistogram( image ) }; chart_element.setValue( chart_data ); }; sdviz::ButtonElement apply_button_element = sdviz::ButtonElement::create( false, apply_button_param ); sdviz::eout << image_element << chart_element << sdviz::endl << slider_container << sdviz::Page::endl << apply_button_element << sdviz::Page::endl; sdviz::wait(); return 0; }