From ba2bfacec6f2349e9c3b57608674cfb057591ee5 Mon Sep 17 00:00:00 2001 From: mutantturkey Date: Mon, 2 Jul 2012 08:35:39 -0400 Subject: code cleanups, all values will be positive - so don't check - should benefit performance --- fly-tools/derive-background/pixel.c | 109 +++++++++++++++++------------------- 1 file changed, 52 insertions(+), 57 deletions(-) (limited to 'fly-tools') diff --git a/fly-tools/derive-background/pixel.c b/fly-tools/derive-background/pixel.c index 605cfea..2330678 100644 --- a/fly-tools/derive-background/pixel.c +++ b/fly-tools/derive-background/pixel.c @@ -5,40 +5,45 @@ #include #include -#define round(x)((x)>=0?(int)((x)+0.5):(int)((x)-0.5)) +//#define round(x)((x)>=0?(int)((x)+0.5):(int)((x)-0.5)) +#define round(x)((int)((x)+0.5)) #define ThrowWandException(wand) { char *description; ExceptionType severity; description=MagickGetException(wand,&severity); (void) fprintf(stderr,"%s %s %lu %s\n",GetMagickModule(),description); description=(char *) MagickRelinquishMemory(description); exit(-1); } -int -findmax (uint8_t *p, int n) + +int findmax (uint8_t *p, int n) { - int mx = 0, v = p[0]; - for (int i = 1; i < n; i++) { - if (p[i] > v) { - v = p[i]; - mx = i; - } - } - return mx; + int mx = 0, v = p[0]; + for (int i = 1; i < n; i++) { + if (p[i] > v) { + v = p[i]; + mx = i; + } + } + return mx; } int main(int argc, char **argv ) { - MagickWand *magick_wand; - MagickWand *first_wand; - PixelIterator* iterator; - PixelWand **pixels; + MagickWand *magick_wand, *first_wand, *output_wand; + PixelIterator *input_iterator, *output_iterator; + PixelWand **pixels, *p_out; double green, red, blue; + int i,j, k, x, y; int image = 0; - unsigned long height, width; int nImages = 0; + unsigned long height, width; + char filename[256]; char rgb[128]; char *temp; + FILE *input_file; + uint8_t ****array; + uint8_t ***output; // open the first image and get the height and width first_wand = NewMagickWand(); @@ -63,19 +68,24 @@ int main(int argc, char **argv ) { fclose(count); } - printf("number of imagges: %d \n", nImages); + printf("number of images: %d \n", nImages); - // initialize the storage array. + // initialize the storage arrays + output = calloc(height, sizeof(output[0])); + for(i = 0; i < height; i++) { + output[i] = calloc(width, sizeof(output[0][0])); + for(j = 0; j < width; j++) { + output[i][j] = calloc(3, sizeof(output[0][0][0])); + } + } + array = calloc(nImages, sizeof(array[0])); - for(i = 0; i < nImages; i++) - { + for(i = 0; i < nImages; i++) { array[i] = calloc(height, sizeof(array[0][0])); - for(j = 0; j < (long) height; j++) - { + for(j = 0; j < (long) height; j++) { array[i][j] = calloc(width, sizeof(array[0][0][0])); - for(k = 0; k < width; k++) - { + for(k = 0; k < width; k++){ array[i][j][k] = calloc(3, sizeof(array[0][0][0][0])); } } @@ -84,7 +94,7 @@ int main(int argc, char **argv ) { MagickWandGenesis(); // store each pixel in the storage array. array[nImage][height][width][ { R, G, B} ] - FILE *input_file = fopen ( argv[1], "r" ); + input_file = fopen ( argv[1], "r" ); if ( input_file != NULL ) { while ((fgets(filename, sizeof(filename), input_file)) != NULL ) { temp = strchr(filename, '\n'); @@ -93,11 +103,11 @@ int main(int argc, char **argv ) { magick_wand = NewMagickWand(); MagickReadImage(magick_wand, filename); - iterator = NewPixelIterator(magick_wand); + input_iterator = NewPixelIterator(magick_wand); printf("Image number:%d Filename: %s \n", image, filename); for (i=0; i