Mercurial > hg > wm
comparison Meerwald/wm_bruyn_d.c @ 8:f83ef905a63d
fixing many warnings
increase capacity for coordinates in bruyn
fix some uninit. variables
| author | Peter Meerwald <pmeerw@cosy.sbg.ac.at> |
|---|---|
| date | Tue, 22 Apr 2008 13:36:05 +0200 |
| parents | be303a3f5ea8 |
| children | 4987db85cfae |
comparison
equal
deleted
inserted
replaced
| 7:2b350281f8b0 | 8:f83ef905a63d |
|---|---|
| 35 gray **block; | 35 gray **block; |
| 36 gray **zone; | 36 gray **zone; |
| 37 gray **category1, **category2; | 37 gray **category1, **category2; |
| 38 gray maxval; | 38 gray maxval; |
| 39 double *slope; | 39 double *slope; |
| 40 int rows, cols, colors, format; | 40 int rows, cols, format; |
| 41 int c; | 41 int c; |
| 42 int i, j; | 42 int i, j; |
| 43 int r; | |
| 44 int n; | 43 int n; |
| 45 int col, row; | 44 int col, row; |
| 46 int bwidth, bheight; | |
| 47 int n_block; | 45 int n_block; |
| 48 | 46 |
| 49 char signature_name[MAXPATHLEN]; | 47 char signature_name[MAXPATHLEN]; |
| 50 char input_name[MAXPATHLEN] = "(stdin)"; | 48 char input_name[MAXPATHLEN] = "(stdin)"; |
| 51 char output_name[MAXPATHLEN] = "(stdout)"; | 49 char output_name[MAXPATHLEN] = "(stdout)"; |
| 147 usage(); | 145 usage(); |
| 148 exit(1); | 146 exit(1); |
| 149 } | 147 } |
| 150 | 148 |
| 151 // open input image file or read from stdin | 149 // open input image file or read from stdin |
| 152 if (argc == 1 && *argv[0] != '-') | 150 if (argc == 1 && *argv[0] != '-') { |
| 153 if ((in = fopen(argv[0], "rb")) == NULL) { | 151 if ((in = fopen(argv[0], "rb")) == NULL) { |
| 154 fprintf(stderr, "%s: unable to open input file %s\n", progname, argv[0]); | 152 fprintf(stderr, "%s: unable to open input file %s\n", progname, argv[0]); |
| 155 exit(1); | 153 exit(1); |
| 156 } | 154 } |
| 157 else | 155 else |
| 158 strcpy(input_name, argv[0]); | 156 strcpy(input_name, argv[0]); |
| 157 } | |
| 159 | 158 |
| 160 // read signature file and set options | 159 // read signature file and set options |
| 161 // command line options override signature file options | 160 // command line options override signature file options |
| 162 if (sig) { | 161 if (sig) { |
| 163 char line[128]; | 162 char line[1024]; |
| 164 fgets(line, sizeof(line), sig); | 163 fgets(line, sizeof(line), sig); |
| 165 if (strspn(line, "BRSG") >= 4) { | 164 if (strspn(line, "BRSG") >= 4) { |
| 166 if (nbit_signature == 0) | 165 if (nbit_signature == 0) |
| 167 fscanf(sig, "%d\n", &nbit_signature); | 166 fscanf(sig, "%d\n", &nbit_signature); |
| 168 else | 167 else |
| 212 fprintf(stderr, "%s: signature file not specified, use -s file option\n", progname); | 211 fprintf(stderr, "%s: signature file not specified, use -s file option\n", progname); |
| 213 exit(1); | 212 exit(1); |
| 214 } | 213 } |
| 215 | 214 |
| 216 if (pattern1 <= 0 || pattern2 <= 0 || pattern1 > NPATTERN || pattern2 > NPATTERN) { | 215 if (pattern1 <= 0 || pattern2 <= 0 || pattern1 > NPATTERN || pattern2 > NPATTERN) { |
| 217 fprintf(stderr, "%s: invalid pattern type specified\n"); | 216 fprintf(stderr, "%s: invalid pattern type specified\n", progname); |
| 218 exit(1); | 217 exit(1); |
| 219 } | 218 } |
| 220 | 219 |
| 221 // read dimensions of input image file | 220 // read dimensions of input image file |
| 222 pgm_readpgminit(in, &cols, &rows, &maxval, &format); | 221 pgm_readpgminit(in, &cols, &rows, &maxval, &format); |
| 229 } | 228 } |
| 230 n_block = blocksize * blocksize; | 229 n_block = blocksize * blocksize; |
| 231 | 230 |
| 232 // allocate structure to remember which blocks we already touched, | 231 // allocate structure to remember which blocks we already touched, |
| 233 // allow plenty of room to skip over blocks | 232 // allow plenty of room to skip over blocks |
| 234 if ((coords = alloc_coords(nbit_signature * 2)) == NULL) { | 233 if ((coords = alloc_coords(nbit_signature * 16)) == NULL) { |
| 235 fprintf(stderr, "%s: unable to allocate memory\n", progname); | 234 fprintf(stderr, "%s: unable to allocate memory\n", progname); |
| 236 exit(1); | 235 exit(1); |
| 237 } | 236 } |
| 238 | 237 |
| 239 // read in input image file | 238 // read in input image file |
| 277 int yb; | 276 int yb; |
| 278 int blocktype; | 277 int blocktype; |
| 279 double smax; | 278 double smax; |
| 280 int alpha, beta_minus, beta_plus; | 279 int alpha, beta_minus, beta_plus; |
| 281 double mean_1A, mean_1B, mean_2A, mean_2B, mean_1, mean_2; | 280 double mean_1A, mean_1B, mean_2A, mean_2B, mean_1, mean_2; |
| 282 double mean__1A, mean__1B, mean__2A, mean__2B; | |
| 283 int n_1A, n_1B, n_2A, n_2B, n_1, n_2; | 281 int n_1A, n_1B, n_2A, n_2B, n_1, n_2; |
| 284 double sigma, sigma_1, sigma_2; | 282 double sigma, sigma_1, sigma_2; |
| 285 int zone1_ok, zone2_ok; | 283 int zone1_ok, zone2_ok; |
| 286 | 284 |
| 287 // find an unused block randomly, depending on seed | 285 // find an unused block randomly, depending on seed |
| 289 xb = random() % (cols / blocksize); | 287 xb = random() % (cols / blocksize); |
| 290 yb = random() % (rows / blocksize); | 288 yb = random() % (rows / blocksize); |
| 291 } while (add_coord(coords, xb, yb) < 0); | 289 } while (add_coord(coords, xb, yb) < 0); |
| 292 | 290 |
| 293 // copy image block | 291 // copy image block |
| 292 fprintf(stderr, "XXX1 %d %d %d\n", xb*blocksize, yb*blocksize, blocksize); | |
| 294 copy_grays_to_block(block, image, xb * blocksize, yb * blocksize, blocksize, blocksize); | 293 copy_grays_to_block(block, image, xb * blocksize, yb * blocksize, blocksize, blocksize); |
| 295 | 294 fprintf(stderr, "XXX2\n"); |
| 295 | |
| 296 if (verbose > 0) | 296 if (verbose > 0) |
| 297 fprintf(stderr, "detecting bit #%d in block at (%d/%d)\n", n, xb * blocksize, yb * blocksize); | 297 fprintf(stderr, "detecting bit #%d in block at (%d/%d)\n", n, xb * blocksize, yb * blocksize); |
| 298 | 298 |
| 299 // sort luminance values in block to represent increasing function F | 299 // sort luminance values in block to represent increasing function F |
| 300 sort_grays(block[0], n_block); | 300 sort_grays(block[0], n_block); |
