Example #1
0
void run_cpp_recongition(const std::string& classifier_path, const std::string& image_path)
{
	PattCutLib::RecognitionController controller;

	try
	{
		auto classifier_id = controller.load_classifier_from_file(classifier_path);
		std::cout << "Classifier loaded. Classifier id = " << classifier_id.id() << std::endl;

		int time_cum = 0;
		for (int i = 0; i < 10; i++)
		{
			auto res = controller.perform_recognition(image_path);
			std::cout << "total time: " << res.total_time_ms() << std::endl;
			if (res.best_classifier_id() > 0)
			{
				std::cout << "recognized!" << std::endl;
			}
			for (int i = 0; i < res.result_per_classifier(0).areas().size(); i++)
			{
				auto cur_area = res.result_per_classifier(0).areas(i);
				std::cout << "veracity: " << cur_area.veracity() <<
					", wnd_count: " << cur_area.merged_window_count() <<
					", area: [" << cur_area.rect_x() << ", " << cur_area.rect_y() << "; " << cur_area.rect_width() << ", " << cur_area.rect_height() << "]" << std::endl;
			}
			time_cum += res.total_time_ms();
		}
		std::cout << "accumulated time: " << time_cum / 10.0 << std::endl;
	}
	catch (PattCutLib::RecognitionException& exc)
	{
		std::cout << "Error: " << exc.what() << std::endl;
	}
}
Example #2
0
void gui_widget_screen_visible_position(gui_widget_t* widget, point_t* point, rect_t* rect)
{
    if(point == NULL && rect == NULL) return;
    
    point_t widget_point;
    gui_widget_position(widget, &widget_point);
    
    rect_t widget_rect;
    gui_widget_rect(widget, &widget_rect);
    
    rect_t parent_rect;
    
    gui_object_t* parent = gui_object_parent(GUI_OBJECT(widget));
    
    while(parent){
        gui_widget_rect(GUI_WIDGET(parent), &parent_rect);
        
        widget_point.x += rect_x(&parent_rect);
        widget_point.y += rect_y(&parent_rect);
        
        widget_rect.left += parent_rect.left;
        widget_rect.top += parent_rect.top;
        widget_rect.right += parent_rect.left;
        widget_rect.bottom += parent_rect.top;
        
        widget_rect.left = MAX(widget_rect.left, parent_rect.left);
        widget_rect.top = MAX(widget_rect.top, parent_rect.top);
        widget_rect.right = MIN(widget_rect.right, parent_rect.right);
        widget_rect.bottom = MIN(widget_rect.bottom, parent_rect.bottom);
        
        parent = gui_object_parent(parent);
    }
    
    if(point) point_copy(point, &widget_point);
    if(rect)  rect_copy(rect, &widget_rect);
}
Example #3
0
void gui_widget_set_x(gui_widget_t* widget, graphics_pos_t x)
{
    gui_widget_move(widget, x, rect_y(&widget->rect));
}