Fawkes API Fawkes Development Version
classifier.cpp
1
2/***************************************************************************
3 * classifier.cpp - Abstract class defining a classifier
4 *
5 * Created: Mon Dec 10 11:35:36 2007
6 * Copyright 2005-2007 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#include <fvclassifiers/classifier.h>
25
26#include <cstdlib>
27#include <cstring>
28
29namespace firevision {
30
31/** @class Classifier <fvclassifiers/classifier.h>
32 * Classifier to extract regions of interest.
33 * The classifier finds regions of interest (ROI) by some a priori knowledge
34 * like known colors or shapes. The list of ROIs returned by classify() _must_
35 * be disjunct, meaning that no ROIs overlap each other.
36 * Do appropriate merging or shrinking of the ROIs. See the ReallySimpleClassifier
37 * for an example.
38 * @author Tim Niemueller
39 *
40 * @fn std::list< ROI > * Classifier::classify() = 0
41 * Classify image.
42 * The current buffer is processed and scanned for the features the classifier
43 * has been written and initialized for. It returns a list of disjunct regions
44 * of interest.
45 * @return disjunct list of extracted regions of interest
46 */
47
48/** Constructor.
49 * @param name classifier name
50 */
51Classifier::Classifier(const char *name)
52{
53 name_ = strdup(name);
54 _src = NULL;
55 _width = 0;
56 _height = 0;
57}
58
59/** Destructor. */
61{
62 free(name_);
63}
64
65/** Set source buffer.
66 * @param yuv422_planar a YUV422 planar buffer with the source image to
67 * classify. The classifier may NOT modify the image in any way. If that is
68 * required the classifier shall make a copy of the image.
69 * @param width width of buffer in pixels
70 * @param height height of buffer in pixels
71 */
72void
73Classifier::set_src_buffer(unsigned char *yuv422_planar, unsigned int width, unsigned int height)
74{
75 _src = yuv422_planar;
76 _width = width;
77 _height = height;
78}
79
80/** Get name of classifier.
81 * @return name of classifier.
82 */
83const char *
85{
86 return name_;
87}
88
89} // end namespace firevision
unsigned int _height
Height in pixels of _src buffer.
Definition: classifier.h:53
virtual void set_src_buffer(unsigned char *yuv422_planar, unsigned int width, unsigned int height)
Set source buffer.
Definition: classifier.cpp:73
unsigned char * _src
Source buffer, encoded as YUV422_PLANAR.
Definition: classifier.h:49
Classifier(const char *name)
Constructor.
Definition: classifier.cpp:51
unsigned int _width
Width in pixels of _src buffer.
Definition: classifier.h:51
virtual const char * name() const
Get name of classifier.
Definition: classifier.cpp:84
virtual ~Classifier()
Destructor.
Definition: classifier.cpp:60