Fawkes API Fawkes Development Version
multi_color.h
1
2/***************************************************************************
3 * multi-color.h - Header for multi color classifier
4 *
5 * Created: Sat Apr 02 09:51:27 2011
6 * Copyright 2005-2011 Tim Niemueller [www.niemueller.de]
7 *
8 ****************************************************************************/
9
10/* This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version. A runtime exception applies to
14 * this software (see LICENSE.GPL_WRE file mentioned below for details).
15 *
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU Library General Public License for more details.
20 *
21 * Read the full text in the LICENSE.GPL_WRE file in the doc directory.
22 */
23
24#ifndef _FIREVISION_CLASSIFIERS_MULTI_COLOR_H_
25#define _FIREVISION_CLASSIFIERS_MULTI_COLOR_H_
26
27#include <fvclassifiers/classifier.h>
28#include <fvutils/base/types.h>
29
30namespace firevision {
31
32class ScanlineModel;
33class ColorModel;
34
36{
37public:
38 MultiColorClassifier(ScanlineModel *scanline_model,
39 ColorModel * color_model,
40 unsigned int min_num_points = 6,
41 unsigned int box_extent = 50,
42 bool upward = false,
43 unsigned int neighbourhood_min_match = 8,
44 unsigned int grow_by = 10);
45
46 virtual std::list<ROI> *classify();
47
48 virtual void get_mass_point_of_color(ROI *roi, fawkes::upoint_t *massPoint);
49
50private:
51 unsigned int consider_neighbourhood(unsigned int x, unsigned int y, color_t what);
52
53 unsigned int neighbourhood_min_match;
54 unsigned int grow_by;
55
56 bool modified;
57 unsigned int min_num_points;
58 unsigned int box_extent;
59
60 bool upward;
61
62 ScanlineModel *scanline_model;
63 ColorModel * color_model;
64};
65
66} // end namespace firevision
67
68#endif
Classifier to extract regions of interest.
Definition: classifier.h:36
Color model interface.
Definition: colormodel.h:32
Simple multi-color classifier.
Definition: multi_color.h:36
virtual std::list< ROI > * classify()
Classify image.
virtual void get_mass_point_of_color(ROI *roi, fawkes::upoint_t *massPoint)
Get mass point of primary color.
MultiColorClassifier(ScanlineModel *scanline_model, ColorModel *color_model, unsigned int min_num_points=6, unsigned int box_extent=50, bool upward=false, unsigned int neighbourhood_min_match=8, unsigned int grow_by=10)
Constructor.
Definition: multi_color.cpp:52
Region of interest.
Definition: roi.h:55
Scanline model interface.
Definition: scanlinemodel.h:53
Point with cartesian coordinates as unsigned integers.
Definition: types.h:35