X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?p=folded-ctf.git;a=blobdiff_plain;f=rich_image.cc;h=aa8b7e58ca943eadf15a6511c55f08ae3edecdc9;hp=e1d21128040bfd1eb4b31badc290b25958f24d7c;hb=HEAD;hpb=33852c7b378d419be75d15a9663ee6b071c2f534 diff --git a/rich_image.cc b/rich_image.cc index e1d2112..aa8b7e5 100644 --- a/rich_image.cc +++ b/rich_image.cc @@ -1,20 +1,26 @@ - -/////////////////////////////////////////////////////////////////////////// -// This program is free software: you can redistribute it and/or modify // -// it under the terms of the version 3 of the GNU General Public License // -// as published by the Free Software Foundation. // -// // -// This program is distributed in the hope that it will be useful, but // -// WITHOUT ANY WARRANTY; without even the implied warranty of // -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // -// General Public License for more details. // -// // -// You should have received a copy of the GNU General Public License // -// along with this program. If not, see . // -// // -// Written by Francois Fleuret, (C) IDIAP // -// Contact for comments & bug reports // -/////////////////////////////////////////////////////////////////////////// +/* + * folded-ctf is an implementation of the folded hierarchy of + * classifiers for object detection, developed by Francois Fleuret + * and Donald Geman. + * + * Copyright (c) 2008 Idiap Research Institute, http://www.idiap.ch/ + * Written by Francois Fleuret + * + * This file is part of folded-ctf. + * + * folded-ctf is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 3 as + * published by the Free Software Foundation. + * + * folded-ctf is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with folded-ctf. If not, see . + * + */ #include @@ -88,7 +94,7 @@ void RichImage::compute_one_scale_edge_maps(int width, int height, } } - const int var_square_size = 16; + const unsigned int var_square_size = 16; int k00 = - 2 + width * (- 2); int k01 = - 1 + width * (- 2); @@ -143,22 +149,22 @@ void RichImage::compute_one_scale_edge_maps(int width, int height, scale_edge_map[first_gray_tag + (local_pixel_map[0] / gray_bin_width)][0][d]++; - if(x - int(var_square_size/2) >= 0 && - x + int(var_square_size/2) < width && - y - int(var_square_size/2) >= 0 && - y + int(var_square_size/2) < height) { - - int s = - + local_sum_pixel_map[ - var_square_size/2 + width * ( - var_square_size / 2)] - + local_sum_pixel_map[ + var_square_size/2 + width * ( + var_square_size / 2)] - - local_sum_pixel_map[ - var_square_size/2 + width * ( + var_square_size / 2)] - - local_sum_pixel_map[ + var_square_size/2 + width * ( - var_square_size / 2)]; - - int s_sq = - + local_sum_sq_pixel_map[ - var_square_size/2 + width * ( - var_square_size / 2)] - + local_sum_sq_pixel_map[ + var_square_size/2 + width * ( + var_square_size / 2)] - - local_sum_sq_pixel_map[ - var_square_size/2 + width * ( + var_square_size / 2)] - - local_sum_sq_pixel_map[ + var_square_size/2 + width * ( - var_square_size / 2)]; + if(x - int(var_square_size / 2) >= 0 && + x + int(var_square_size / 2) < width && + y - int(var_square_size / 2) >= 0 && + y + int(var_square_size / 2) < height) { + + unsigned int s = + + *(local_sum_pixel_map - var_square_size / 2 + width * ( - var_square_size / 2)) + + *(local_sum_pixel_map + var_square_size / 2 + width * ( + var_square_size / 2)) + - *(local_sum_pixel_map - var_square_size / 2 + width * ( + var_square_size / 2)) + - *(local_sum_pixel_map + var_square_size / 2 + width * ( - var_square_size / 2)); + + unsigned int s_sq = + + *(local_sum_sq_pixel_map - var_square_size / 2 + width * ( - var_square_size / 2)) + + *(local_sum_sq_pixel_map + var_square_size / 2 + width * ( + var_square_size / 2)) + - *(local_sum_sq_pixel_map - var_square_size / 2 + width * ( + var_square_size / 2)) + - *(local_sum_sq_pixel_map + var_square_size / 2 + width * ( - var_square_size / 2)); if(sq(var_square_size) * s_sq - sq(s) >= 100 * sq(var_square_size) * (sq(var_square_size) - 1)) {