Exemplo n.º 1
0
/* 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];
	
}
Exemplo n.º 2
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; 
}
Exemplo n.º 3
0
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;
}
Exemplo n.º 4
0
Arquivo: main.cpp Projeto: ar90n/sdviz
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;
}