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 
30 namespace firevision {
31 
32 class ScanlineModel;
33 class ColorModel;
34 
36 {
37 public:
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 
50 private:
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
firevision::Classifier
Classifier to extract regions of interest.
Definition: classifier.h:36
firevision::MultiColorClassifier
Simple multi-color classifier.
Definition: multi_color.h:36
fawkes::upoint_t
Point with cartesian coordinates as unsigned integers.
Definition: types.h:35
firevision::ROI
Region of interest.
Definition: roi.h:55
firevision::ScanlineModel
Scanline model interface.
Definition: scanlinemodel.h:53
firevision::ColorModel
Color model interface.
Definition: colormodel.h:32
firevision::MultiColorClassifier::classify
virtual std::list< ROI > * classify()
Classify image.
Definition: multi_color.cpp:126
firevision::MultiColorClassifier::MultiColorClassifier
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
firevision::MultiColorClassifier::get_mass_point_of_color
virtual void get_mass_point_of_color(ROI *roi, fawkes::upoint_t *massPoint)
Get mass point of primary color.
Definition: multi_color.cpp:282