Mercurial > hg > wm
comparison Meerwald/wm_dugad_d.c @ 3:acb6967ee76d
update to 0.5
author | Peter Meerwald <pmeerw@cosy.sbg.ac.at> |
---|---|
date | Tue, 14 Aug 2007 21:11:21 +0200 |
parents | be303a3f5ea8 |
children | f83ef905a63d |
comparison
equal
deleted
inserted
replaced
2:b92f06d9a967 | 3:acb6967ee76d |
---|---|
49 | 49 |
50 int c, w; | 50 int c, w; |
51 int i; | 51 int i; |
52 int n = 0; | 52 int n = 0; |
53 int method = -1; | 53 int method = -1; |
54 int levels = 0; | 54 int level = 0; |
55 int filter = 0; | 55 int filter = 0; |
56 char filter_name[MAXPATHLEN] = ""; | 56 char filter_name[MAXPATHLEN] = ""; |
57 | 57 |
58 double alpha = 0.0; | 58 double alpha = 0.0; |
59 double t2 = 0.0; | 59 double t2 = 0.0; |
102 case 'h': | 102 case 'h': |
103 case '?': | 103 case '?': |
104 usage(); | 104 usage(); |
105 break; | 105 break; |
106 case 'l': | 106 case 'l': |
107 levels = atoi(optarg); | 107 level = atoi(optarg); |
108 if (levels <= 0) { | 108 if (level <= 0) { |
109 fprintf(stderr, "%s: decomposition level %d out of range\n", levels); | 109 fprintf(stderr, "%s: decomposition level %d out of range\n", level); |
110 exit(1); | 110 exit(1); |
111 } | 111 } |
112 break; | 112 break; |
113 | 113 |
114 case 'n': | 114 case 'n': |
168 if (sig) { | 168 if (sig) { |
169 char line[32]; | 169 char line[32]; |
170 fgets(line, sizeof(line), sig); | 170 fgets(line, sizeof(line), sig); |
171 if (strspn(line, "DGSG") >= 4) { | 171 if (strspn(line, "DGSG") >= 4) { |
172 fscanf(sig, "%d\n", &n); | 172 fscanf(sig, "%d\n", &n); |
173 if (levels == 0) | 173 if (level == 0) |
174 fscanf(sig, "%d\n", &levels); | 174 fscanf(sig, "%d\n", &level); |
175 else | 175 else |
176 fscanf(sig, "%*d\n"); | 176 fscanf(sig, "%*d\n"); |
177 if (alpha == 0.0) | 177 if (alpha == 0.0) |
178 fscanf(sig, "%lf\n", &alpha); | 178 fscanf(sig, "%lf\n", &alpha); |
179 else | 179 else |
222 pgm_readpgmrow(in, input_image[row], in_cols, in_maxval, in_format); | 222 pgm_readpgmrow(in, input_image[row], in_cols, in_maxval, in_format); |
223 } | 223 } |
224 | 224 |
225 fclose(in); | 225 fclose(in); |
226 | 226 |
227 init_dwt(cols, rows, filter_name, filter, levels, method); | 227 init_dwt(cols, rows, filter_name, filter, level, method); |
228 #ifdef POLLEN_STUFF | 228 #ifdef POLLEN_STUFF |
229 #include "pollen_stuff.xxx" | 229 #include "pollen_stuff.c" |
230 #endif | 230 #endif |
231 #ifdef PARAM_STUFF | 231 #ifdef PARAM_STUFF |
232 #include "param_stuff.xxx" | 232 #include "param_stuff.c" |
233 #endif | 233 #endif |
234 | 234 |
235 dwts = fdwt(input_image); | 235 dwts = fdwt(input_image); |
236 | 236 |
237 fprintf(out, "DGWM\n"); | 237 fprintf(out, "DGWM\n"); |
238 fprintf(out, "%d\n", levels); | 238 fprintf(out, "%d\n", level); |
239 fprintf(out, "%f\n", alpha); | 239 fprintf(out, "%f\n", alpha); |
240 | 240 |
241 for (i = 0, s = dwts; i < levels; i++, s = s->coarse) { | 241 for (i = 0, s = dwts; i < level; i++, s = s->coarse) { |
242 int m; | 242 int m; |
243 double z, v; | 243 double z, v; |
244 | 244 |
245 wm_subband(s->horizontal->image, watermark, n, t2, &m, &z, &v); | 245 wm_subband(s->horizontal->image, watermark, n, t2, &m, &z, &v); |
246 fprintf(out, "%d %f %f\n", m, z, v); | 246 fprintf(out, "%d %f %f\n", m, z, v); |