Mercurial > hg > wm
comparison Meerwald/wm_bruyn_e.c @ 20:bd669312f068
suppress warnings, fix link errors
| author | Peter Meerwald-Stadler <pmeerw@pmeerw.net> |
|---|---|
| date | Sat, 28 Jan 2023 23:54:58 +0100 |
| parents | 4987db85cfae |
| children |
comparison
equal
deleted
inserted
replaced
| 19:0fffb6f03ebf | 20:bd669312f068 |
|---|---|
| 39 double *slope; | 39 double *slope; |
| 40 int rows, cols, format; | 40 int rows, cols, format; |
| 41 int c; | 41 int c; |
| 42 int i, j; | 42 int i, j; |
| 43 int n; | 43 int n; |
| 44 int col, row; | 44 int row; |
| 45 int n_block; | 45 int n_block; |
| 46 int skipping = 0; | 46 int skipping = 0; |
| 47 | 47 |
| 48 char signature_name[MAXPATHLEN]; | 48 char signature_name[MAXPATHLEN]; |
| 49 char input_name[MAXPATHLEN] = "(stdin)"; | 49 char input_name[MAXPATHLEN] = "(stdin)"; |
| 66 pgm_init(&argc, argv); wm_init(); | 66 pgm_init(&argc, argv); wm_init(); |
| 67 | 67 |
| 68 // parse command line and set options | 68 // parse command line and set options |
| 69 while ((c = getopt(argc, argv, "b:h?n:o:p:P:q:s:t:T:v:k")) != EOF) { | 69 while ((c = getopt(argc, argv, "b:h?n:o:p:P:q:s:t:T:v:k")) != EOF) { |
| 70 switch (c) { | 70 switch (c) { |
| 71 case 'k': | 71 case 'k': |
| 72 skipping = 1; | 72 skipping = 1; |
| 73 break; | 73 break; |
| 74 case 'h': | 74 case 'h': |
| 75 case '?': | 75 case '?': |
| 76 usage(); | 76 usage(); |
| 194 fscanf(sig, "%d\n", &blocksize); | 194 fscanf(sig, "%d\n", &blocksize); |
| 195 else | 195 else |
| 196 fscanf(sig, "%*d\n"); | 196 fscanf(sig, "%*d\n"); |
| 197 fscanf(sig, "%d\n", &seed); | 197 fscanf(sig, "%d\n", &seed); |
| 198 srandom(seed); | 198 srandom(seed); |
| 199 n_signature = NBITSTOBYTES(nbit_signature); | 199 fread(signature, sizeof(char), NBITSTOBYTES(nbit_signature), sig); |
| 200 fread(signature, sizeof(char), n_signature, sig); | |
| 201 fscanf(sig, "\n"); | 200 fscanf(sig, "\n"); |
| 202 } | 201 } |
| 203 else { | 202 else { |
| 204 fprintf(stderr, "%s: invalid signature file %s\n", progname, signature_name); | 203 fprintf(stderr, "%s: invalid signature file %s\n", progname, signature_name); |
| 205 exit(1); | 204 exit(1); |
| 240 pgm_readpgmrow(in, image[row], cols, maxval, format); | 239 pgm_readpgmrow(in, image[row], cols, maxval, format); |
| 241 | 240 |
| 242 fclose(in); | 241 fclose(in); |
| 243 | 242 |
| 244 row = 0; | 243 row = 0; |
| 245 col = 0; | |
| 246 | 244 |
| 247 // allocate memory for one block | 245 // allocate memory for one block |
| 248 block = alloc_grays(blocksize, blocksize); | 246 block = alloc_grays(blocksize, blocksize); |
| 249 | 247 |
| 250 // allocate memory for zone classification | 248 // allocate memory for zone classification |
| 252 | 250 |
| 253 // allocate memory for category classification | 251 // allocate memory for category classification |
| 254 category1 = alloc_grays(blocksize, blocksize); | 252 category1 = alloc_grays(blocksize, blocksize); |
| 255 category2 = alloc_grays(blocksize, blocksize); | 253 category2 = alloc_grays(blocksize, blocksize); |
| 256 | 254 |
| 257 // set up category classification array according to | 255 // set up category classification array according to |
| 258 // pattern type parameter | 256 // pattern type parameter |
| 259 for (i = 0; i < blocksize; i++) | 257 for (i = 0; i < blocksize; i++) |
| 260 for (j = 0; j < blocksize; j++) { | 258 for (j = 0; j < blocksize; j++) { |
| 261 category1[j][i] = lookup_pattern(pattern1, i, j); | 259 category1[j][i] = lookup_pattern(pattern1, i, j); |
| 262 category2[j][i] = lookup_pattern(pattern2, i, j); | 260 category2[j][i] = lookup_pattern(pattern2, i, j); |
| 284 xb = random() % (cols / blocksize); | 282 xb = random() % (cols / blocksize); |
| 285 yb = random() % (rows / blocksize); | 283 yb = random() % (rows / blocksize); |
| 286 } while (add_coord(coords, xb, yb) < 0); | 284 } while (add_coord(coords, xb, yb) < 0); |
| 287 | 285 |
| 288 // copy image block | 286 // copy image block |
| 289 copy_grays_to_block(block, image, xb * blocksize, yb * blocksize, blocksize, blocksize); | 287 copy_grays_to_block(block, image, xb * blocksize, yb * blocksize, blocksize, blocksize); |
| 290 | 288 |
| 291 if (verbose > 0) | 289 if (verbose > 0) |
| 292 fprintf(stderr, "embedding bit #%d (= %d) in block at (%d/%d)\n", n, get_signature_bit(n), xb * blocksize, yb * blocksize); | 290 fprintf(stderr, "embedding bit #%d (= %d) in block at (%d/%d)\n", n, get_signature_bit(n), xb * blocksize, yb * blocksize); |
| 293 if (verbose > 8) { | 291 if (verbose > 8) { |
| 294 print_grays(image, xb * blocksize, yb * blocksize, blocksize, blocksize); | 292 print_grays(image, xb * blocksize, yb * blocksize, blocksize, blocksize); |
