** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: if1.cpp,v 1.1 2000/12/18 00:24:28 kevin Exp $
+** $Id: if1.cpp,v 1.4 2000/12/29 19:30:08 kevin Exp $
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License (version 2) as
{0, 0, 0, 0}
};
-static const char* g_szIdStr = "$Id: if1.cpp,v 1.1 2000/12/18 00:24:28 kevin Exp $";
+static const char* g_szIdStr = "$Id: if1.cpp,v 1.4 2000/12/29 19:30:08 kevin Exp $";
void
if1_usage (const char *program)
std::cout << " --exp Natural exponential of image" << std::endl;
std::cout << " --sqr Square of image" << std::endl;
std::cout << " --sqrt Square root of image" << std::endl;
- std::cout << " --verbose Verbose modem" << std::endl;
+ std::cout << " --verbose Verbose mode" << std::endl;
std::cout << " --version Print version" << std::endl;
std::cout << " --help Print this help message" << std::endl;
}
int
if1_main (int argc, char *const argv[])
{
- ImageFile *im_in;
- ImageFile *im_out;
char *in_file;
char *out_file;
int opt_verbose = 0;
in_file = argv[optind];
out_file = argv[optind + 1];
-
std::string histString;
if (opt_invert || opt_log || opt_exp || opt_sqr || opt_sqrt) {
- int ix, iy;
-
- im_in = new ImageFile ();
- im_in->fileRead (in_file);
- int nx = im_in->nx();
- int ny = im_in->ny();
- im_out = new ImageFile (nx, ny);
-
- ImageFileArray vIn = im_in->getArray();
- ImageFileArray vOut = im_out->getArray();
-
- if (opt_invert) {
- for (ix = 0; ix < nx; ix++)
- for (iy = 0; iy < ny; iy++)
- vOut[ix][iy] = - vIn[ix][iy];
+ ImageFile im_in;
+ im_in.fileRead (in_file);
+ int nx = im_in.nx();
+ int ny = im_in.ny();
+ ImageFile im_out (nx, ny);
+
+ if (opt_invert) {\r
+ im_in.invertPixelValues (im_out);
histString = "Invert transformation";
}
- if (opt_log) {
- for (ix = 0; ix < nx; ix++)
- for (iy = 0; iy < ny; iy++)
- vOut[ix][iy] = log (vIn[ix][iy]);
- histString = "Log transformation";
+ if (opt_log) {\r
+ im_in.log (im_out);
+ histString = "Logrithmic transformation";
}
- if (opt_exp) {
- for (ix = 0; ix < nx; ix++)
- for (iy = 0; iy < ny; iy++)
- vOut[ix][iy] = exp (vIn[ix][iy]);
- histString = "Exp transformation";
+ if (opt_exp) {\r
+ im_in.exp (im_out);
+ histString = "Exponential transformation";
}
- if (opt_sqr) {
- for (ix = 0; ix < nx; ix++)
- for (iy = 0; iy < ny; iy++)
- vOut[ix][iy] = vIn[ix][iy] * vIn[ix][iy];
- histString = "Sqr transformation";
+ if (opt_sqr) {\r
+ im_in.square (im_out);
+ histString = "Square transformation";
}
- if (opt_sqrt) {
- for (ix = 0; ix < nx; ix++)
- for (iy = 0; iy < ny; iy++)
- vOut[ix][iy] = sqrt (vIn[ix][iy]);
- histString = "Sqrt transformation";
+ if (opt_sqrt) {\r
+ im_in.sqrt (im_out);
+ histString = "Square root transformation";
}
- im_out->labelsCopy (*im_in);
- im_out->labelAdd (Array2dFileLabel::L_HISTORY, histString.c_str());
- im_out->fileWrite (out_file);
+ im_out.labelsCopy (im_in);
+ im_out.labelAdd (Array2dFileLabel::L_HISTORY, histString.c_str());
+ im_out.fileWrite (out_file);
}
return (0);