X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=src%2Fsdf-1.c;h=d21052d66a032ce6e0d68e1665f6a33b0647a225;hb=331b5c344271387790f735540510e2a07e4e42a7;hp=79e01d3260f6063af51577eb91f095d1bcd96d02;hpb=13838bda88b63a2535b5baaf7197006767de4b8e;p=ctsim.git diff --git a/src/sdf-1.c b/src/sdf-1.c index 79e01d3..d21052d 100644 --- a/src/sdf-1.c +++ b/src/sdf-1.c @@ -2,10 +2,17 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: sdf-1.c,v 1.1 2000/04/28 13:02:44 kevin Exp $ +** $Id: sdf-1.c,v 1.3 2000/05/08 20:02:32 kevin Exp $ ** $Log: sdf-1.c,v $ -** Revision 1.1 2000/04/28 13:02:44 kevin -** Initial revision +** Revision 1.3 2000/05/08 20:02:32 kevin +** ANSI C changes +** +** Revision 1.2 2000/05/03 08:49:50 kevin +** Code cleanup +** +** Revision 1.1.1.1 2000/04/28 13:02:44 kevin +** Initial CVS import for first public release +** ** ** ** This program is free software; you can redistribute it and/or modify @@ -27,15 +34,14 @@ #include "ct.h" -#define O_INVERT 6 -#define O_VERBOSE 7 -#define O_HELP 8 -#define O_VERSION 9 +enum {O_LOG, O_EXP, O_INVERT, O_VERBOSE, O_HELP, O_VERSION}; static struct option my_options[] = { {"invert", 0, 0, O_INVERT}, {"verbose", 0, 0, O_VERBOSE}, + {"log", 0, 0, O_LOG}, + {"exp", 0, 0, O_EXP}, {"help", 0, 0, O_HELP}, {"version", 0, 0, O_VERSION}, {0, 0, 0, 0} @@ -48,6 +54,8 @@ usage (const char *program) fprintf(stdout, "Generate a SDF2D file from a SDF2D file\n"); fprintf(stdout, "\n"); fprintf(stdout, " --invert Invert image\n"); + fprintf(stdout, " --log Natural logrithm of image\n"); + fprintf(stdout, " --exp Natural exponential of image\n"); fprintf(stdout, " --verbose Verbose modem\n"); fprintf(stdout, " --version Print version\n"); fprintf(stdout, " --help Print this help message\n"); @@ -63,6 +71,8 @@ main (int argc, char *const argv[]) char *out_file; int opt_verbose = 0; int opt_invert = 0; + int opt_log = 0; + int opt_exp = 0; while (1) { @@ -76,6 +86,12 @@ main (int argc, char *const argv[]) case O_INVERT: opt_invert = 1; break; + case O_LOG: + opt_log = 1; + break; + case O_EXP: + opt_exp = 1; + break; case O_VERBOSE: opt_verbose = 1; break; @@ -106,16 +122,28 @@ main (int argc, char *const argv[]) out_file = argv[optind + 1]; - if (opt_invert) { + if (opt_invert || opt_log || opt_exp) { int ix, iy; im_in = image_load (in_file); im_out = image_create (out_file, im_in->nx, im_in->ny); - for (ix = 0; ix < im_in->nx; ix++) - for (iy = 0; iy < im_in->ny; iy++) - im_out->v[ix][iy] = - im_in->v[ix][iy]; - + if (opt_invert) { + for (ix = 0; ix < im_in->nx; ix++) + for (iy = 0; iy < im_in->ny; iy++) + im_out->v[ix][iy] = - im_in->v[ix][iy]; + } + if (opt_log) { + for (ix = 0; ix < im_in->nx; ix++) + for (iy = 0; iy < im_in->ny; iy++) + im_out->v[ix][iy] = log (im_in->v[ix][iy]); + } + if (opt_exp) { + for (ix = 0; ix < im_in->nx; ix++) + for (iy = 0; iy < im_in->ny; iy++) + im_out->v[ix][iy] = exp (im_in->v[ix][iy]); + } + image_save(im_out); }