123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- /**
- * @file Preprocess.cpp
- * @brief simple preprocessing operations
- * @author Erik Rodner
- * @date 02/20/2008
- */
- #ifdef NOVISUAL
- #include <vislearning/nice_nonvis.h>
- #else
- #include <vislearning/nice.h>
- #endif
- #include <iostream>
- #include "vislearning/baselib/Preprocess.h"
- #include "vislearning/baselib/Conversions.h"
- #include "core/basics/StringTools.h"
- using namespace OBJREC;
- using namespace std;
- using namespace NICE;
- int Preprocess::normalizeWidth = -1;
- int Preprocess::normalizeHeight = -1;
- bool Preprocess::init = false;
- std::string Preprocess::substituteFilenameRegex = "";
- std::string Preprocess::substituteFilenameSubs = "";
- bool Preprocess::disableReadImg = false;
- bool Preprocess::disableReadImgHeader = false;
- void Preprocess::Init ( const Config *conf )
- {
- init = true;
- normalizeWidth = conf->gI("preprocess", "normalize_width", -1 );
- normalizeHeight = conf->gI("preprocess", "normalize_height", -1 );
- substituteFilenameRegex = conf->gS("preprocess", "substitute_filename_regex", "");
- substituteFilenameSubs = conf->gS("preprocess", "substitute_filename_subs", "");
- disableReadImg = conf->gB("preprocess", "disable_readimg", false);
- disableReadImgHeader = conf->gB("preprocess", "disable_readimg_header", false);
- }
- void Preprocess::getImageSize ( const std::string & filename, int & xsize, int & ysize )
- {
- ImageFile file ( filename );
- xsize = file.width();
- ysize = file.height();
- if ( normalizeWidth > 0 ) xsize = normalizeWidth;
- if ( normalizeHeight > 0 ) ysize = normalizeHeight;
- }
- NICE::Image Preprocess::ReadImgAdv ( const std::string & filename )
- {
- std::string realfilename = filename;
- if ( substituteFilenameRegex.size() > 0 ) {
- fprintf (stderr, "%s -> ", realfilename.c_str() );
- StringTools::regexSubstitute ( realfilename, substituteFilenameRegex, substituteFilenameSubs );+
- fprintf (stderr, "%s\n", realfilename.c_str() );
- }
- if ( disableReadImg ) {
- int xsize,ysize; // refactor: ,maxval;
- if ( ! disableReadImgHeader ) {
- try {
- ImageFile file ( filename );
- xsize = file.width();
- ysize = file.height();
- } catch ( ImageException & ) {
- xsize = 10;
- ysize = 10;
- }
- } else {
- xsize = 10;
- ysize = 10;
- }
- fprintf (stderr, "Preprocess: read image disabled (xsize=%d,ysize=%d) !\n", xsize, ysize);
- return Image(xsize,ysize);
- }
- NICE::Image img;
- try {
- img.read ( realfilename );
- }
- catch(ImageException &)
- {
- fprintf (stderr, "Failed to open image file: %s\n", realfilename.c_str() );
- exit(-1);
- }
- if ( ( (normalizeWidth > 0) && (normalizeWidth != img.width()) ) ||
- ( (normalizeHeight >0) && (normalizeHeight != img.height()) ) )
- {
- NICE::Image img_s;
- Conversions::resizeImage ( img, img_s, normalizeWidth, normalizeHeight );
- return img_s;
- } else {
- return img;
- }
- }
- NICE::ColorImage Preprocess::ReadImgAdvRGB ( const std::string & filename )
- {
- std::string realfilename = filename;
- if ( substituteFilenameRegex.size() > 0 ) {
- fprintf (stderr, "%s -> ", realfilename.c_str() );
- StringTools::regexSubstitute ( realfilename, substituteFilenameRegex, substituteFilenameSubs );
- fprintf (stderr, "%s\n", realfilename.c_str() );
- }
- NICE::ColorImage img;
- try {
- img.read (realfilename);
- } catch ( ImageException & ) {
- fprintf (stderr, "Failed to open image file: %s\n", realfilename.c_str() );
- exit(-1);
- }
- if ( ( (normalizeWidth > 0) && (normalizeWidth != img.width()) ) ||
- ( (normalizeHeight > 0) && (normalizeHeight != img.height()) ) )
- {
- NICE::ColorImage img_s;
- cerr << "resizing image to: " << normalizeWidth << " " << normalizeHeight << endl;
- Conversions::resizeImage ( img, img_s, normalizeWidth, normalizeHeight );
- return img_s;
- } else {
- return img;
- }
- }
|