///////////////////////////////////////////////////////////////////////////// // Name: crvhistogram.h // Purpose: // Author: Cesar Mauri Loba (cesar at crea-si dot com) // Modified by: // Created: 30/05/2008 // Copyright: (C) 2008 Cesar Mauri Loba - CREA Software Systems // // 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 3 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, see . ///////////////////////////////////////////////////////////////////////////// #ifndef CRVHISTOGRAM_H #define CRVHISTOGRAM_H #include typedef unsigned char TCrvLookupTable[256]; typedef int TCrvHistogram[256]; // Calcula l'histograma d'una imatge void crvHistogram (IplImage *srcImg, TCrvHistogram &his); // Calcula on comença i acaba un histograma. Retorna // false si l'histograma és buit (tot zeros) bool crvHistogramBeginEnd (TCrvHistogram &his, unsigned char &begin, unsigned char &end); // Aplica a una imatge de grisos la transformació que imposa la // lookup-table passada com a paràmetre (té en compte ROI) void crvLUTTransform (IplImage *srcImg, IplImage *dstImg, TCrvLookupTable &lut); // Genera la LUT per normalitzar una imatge a partir del seu // histograma. Retorna la mida de l'histograma int crvNormalizeHistogram (TCrvHistogram &his, TCrvLookupTable &lut, unsigned char minRange= 0); // Normalitza una imatge en escala de grisos (impl. lenta) // Retorna mida histograma original int crvNormalize (IplImage *src, IplImage *dst); #endif