2 * folded-ctf is an implementation of the folded hierarchy of
3 * classifiers for object detection, developed by Francois Fleuret
6 * Copyright (c) 2008 Idiap Research Institute, http://www.idiap.ch/
7 * Written by Francois Fleuret <francois.fleuret@idiap.ch>
9 * This file is part of folded-ctf.
11 * folded-ctf is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License as published
13 * by the Free Software Foundation, either version 3 of the License,
14 * or (at your option) any later version.
16 * folded-ctf is distributed in the hope that it will be useful, but
17 * WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 * General Public License for more details.
21 * You should have received a copy of the GNU General Public License
22 * along with folded-ctf. If not, see <http://www.gnu.org/licenses/>.
28 A simple image class to either load color images, or produce
41 unsigned char ***_bit_plans, **_bit_lines, *_bit_map;
42 static const int RED = 0;
43 static const int GREEN = 1;
44 static const int BLUE = 2;
45 static const int RGB_DEPTH = 3;
53 RGBImage(int width, int height);
54 RGBImage(RGBImage *image, scalar_t scale);
57 inline int width() const { return _width; }
58 inline int height() const { return _height; }
60 inline void set_pixel(int x, int y, unsigned char r, unsigned char g, unsigned char b) {
61 ASSERT(x >= 0 && x < _width && y >= 0 && y < _height);
62 _bit_plans[RED][y][x] = r;
63 _bit_plans[GREEN][y][x] = g;
64 _bit_plans[BLUE][y][x] = b;
67 inline unsigned char pixel(int x, int y, int d) {
68 ASSERT(x >= 0 && x < _width && y >= 0 && y < _height && d >= 0 && d < RGB_DEPTH);
69 return _bit_plans[d][y][x];
72 virtual void read_png(const char *filename);
73 virtual void write_png(const char *filename);
75 virtual void read_jpg(const char *filename);
76 virtual void write_jpg(const char *filename, int quality);
78 virtual void draw_line(int thickness,
79 unsigned char r, unsigned char g, unsigned char b,
80 scalar_t x0, scalar_t y0, scalar_t x1, scalar_t y1);
82 virtual void draw_ellipse(int thickness,
83 unsigned char r, unsigned char g, unsigned char b,
84 scalar_t xc, scalar_t yc, scalar_t radius_1, scalar_t radius_2, scalar_t tilt);