/*************************************************************************** imgSeek :: databse C++ module ------------------- begin : Fri Jan 17 2003 email : nieder|at|mail.ru Time-stamp: <05/01/25 22:36:35 rnc> Copyright (C) 2003 Ricardo Niederberger Cabral This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. 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, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *************************************************************************** */ #ifndef IMGDBASE_H #define IMGDBASE_H float weights[2][6][3]={ {{5.00,19.21,34.37},{0.83,1.26,0.36},{1.01,0.44,0.45},{0.52,0.53,0.14},{0.47,0.28,0.18},{0.3 ,0.14,0.27}}, {{4.04,15.14,22.62},{0.78,0.92,0.40},{0.46,0.53,0.63},{0.42,0.26,0.25},{0.41,0.14,0.15},{0.32,0.07,0.38}} }; /* haar coefficients weight */ /* signature structure */ typedef struct sigStruct_{ int* sig1; int* sig2; int* sig3; long int id; double * avgl; double score; /* used when doing queries */ /* image properties extracted when opened for the first time */ bool operator< (const sigStruct_ & right) const { return score < (right.score); } } sigStruct; struct cmpf { bool operator()(const long int s1, const long int s2) const { return s1::iterator sigIterator; typedef std::list long_list; typedef long_list::iterator long_listIterator; typedef std::priority_queue < sigStruct > priqueue; typedef std::list long_list_2; /* a list of lists */ typedef std::map sigMap; sigMap sigs; long_list imgbuckets[3][2][16384]; priqueue pqResults; /* results priority queue */ sigStruct curResult; /* current result waiting to be returned */ int numres; /* number of results found */ // Misc functions int hasImageMagick(void); // Functions only available with imgmagick: #ifdef ImMagick int convert(char* f1,char* f2); int magickThumb(char* f1,char* f2); #endif #endif