Harden the detection of response files.
Implied suggestion by Bruno Postle.
1.1 --- a/VERSION Fri Nov 06 09:42:01 2009 +0100
1.2 +++ b/VERSION Sat Nov 07 10:02:29 2009 +0100
1.3 @@ -1,1 +1,1 @@
1.4 -4.0-f2451287ddf1
1.5 +4.0-af0a40a346e7
2.1 --- a/doc/enblend.info Fri Nov 06 09:42:01 2009 +0100
2.2 +++ b/doc/enblend.info Sat Nov 07 10:02:29 2009 +0100
2.3 @@ -27,7 +27,7 @@
2.4 Enblend
2.5 *******
2.6
2.7 -This manual is for Enblend (version 4.0-dd32463fe9de, 5 November 2009),
2.8 +This manual is for Enblend (version 4.0-dd32463fe9de, 7 November 2009),
2.9 a tool for compositing images in such a way that the seam between the
2.10 images is invisible, or at least very difficult to see.
2.11
2.12 @@ -260,7 +260,7 @@
2.13 For convenience whitespace at the beginning and at the end of each
2.14 line is ignored. However, this implies that response files cannot
2.15 represent filenames that start or end with whitespace, as there is
2.16 - no quoting syntax. Filenames with embedded whatespace cause no
2.17 + no quoting syntax. Filenames with embedded whitespace cause no
2.18 problems, though.
2.19
2.20 Only whole-line comments
2.21 @@ -276,7 +276,16 @@
2.22
2.23 Image filenames cannot start with `@'
2.24 An at-sign always introduces a response file, even if the extension
2.25 - would hinto towards an image.
2.26 + would hint towards an image.
2.27 +
2.28 + If Enblend or Enfuse do not recognize a response file, they will
2.29 +issue a warning. To force a file being recognized as a response file
2.30 +add one of the following syntactic comments to the _first_ line of the
2.31 +file.
2.32 +
2.33 + # response-file: true
2.34 + # enblend-response-file: true
2.35 + # enfuse-response-file: true
2.36
2.37 Here is an example of a valid response file.
2.38 # 4\pi panorama!
2.39 @@ -1862,252 +1871,253 @@
2.40 Program Index
2.41 *************
2.42
2.43 -ale: See 6. (line 1211)
2.44 -align_image_stack (Hugin): See 6. (line 1218)
2.45 -cinepaint <1>: See 6. (line 1230)
2.46 -cinepaint: See 3.2. (line 596)
2.47 -convert (ImageMagick): See 6. (line 1241)
2.48 -dcraw <1>: See 6. (line 1201)
2.49 +ale: See 6. (line 1220)
2.50 +align_image_stack (Hugin): See 6. (line 1227)
2.51 +cinepaint <1>: See 6. (line 1239)
2.52 +cinepaint: See 3.2. (line 605)
2.53 +convert (ImageMagick): See 6. (line 1250)
2.54 +dcraw <1>: See 6. (line 1210)
2.55 dcraw: See 2. (line 102)
2.56 -display (ImageMagick): See 6. (line 1241)
2.57 -exiftool: See 6. (line 1269)
2.58 -exrdisplay (OpenEXR): See 6. (line 1247)
2.59 -fulla (Hugin): See 6. (line 1218)
2.60 -gimp <1>: See 6. (line 1237)
2.61 -gimp <2>: See 3.2. (line 596)
2.62 +display (ImageMagick): See 6. (line 1250)
2.63 +exiftool: See 6. (line 1278)
2.64 +exrdisplay (OpenEXR): See 6. (line 1256)
2.65 +fulla (Hugin): See 6. (line 1227)
2.66 +gimp <1>: See 6. (line 1246)
2.67 +gimp <2>: See 3.2. (line 605)
2.68 gimp: See 2. (line 102)
2.69 -gm (GraphicsMagick): See 6. (line 1241)
2.70 -hugin <1>: See 6. (line 1215)
2.71 -hugin <2>: See 3.2. (line 587)
2.72 +gm (GraphicsMagick): See 6. (line 1250)
2.73 +hugin <1>: See 6. (line 1224)
2.74 +hugin <2>: See 3.2. (line 596)
2.75 hugin <3>: See 2. (line 102)
2.76 hugin: See 1. (line 56)
2.77 -identify (ImageMagick) <1>: See 6. (line 1241)
2.78 -identify (ImageMagick): See 4.1. (line 1050)
2.79 -montage (ImageMagick): See 6. (line 1241)
2.80 -nona (Hugin) <1>: See 6. (line 1218)
2.81 -nona (Hugin): See 3.2. (line 587)
2.82 +identify (ImageMagick) <1>: See 6. (line 1250)
2.83 +identify (ImageMagick): See 4.1. (line 1059)
2.84 +montage (ImageMagick): See 6. (line 1250)
2.85 +nona (Hugin) <1>: See 6. (line 1227)
2.86 +nona (Hugin): See 3.2. (line 596)
2.87 PanoTools <1>: See 2. (line 102)
2.88 PanoTools: See 1. (line 56)
2.89 -pfshdrcalibrate (PFScalibration): See 6. (line 1250)
2.90 -pfsin (PFSTools): See 6. (line 1250)
2.91 -pfsout (PFSTools): See 6. (line 1250)
2.92 -pfstmo_* (PFStmo): See 6. (line 1250)
2.93 -pfsview (PFSTools): See 6. (line 1250)
2.94 -PTmender (PanoTools): See 6. (line 1223)
2.95 -PTOptimizer (PanoTools): See 6. (line 1223)
2.96 -tifficc (LittleCMS): See 6. (line 1273)
2.97 -tiffinfo (libtiff) <1>: See 6. (line 1265)
2.98 -tiffinfo (libtiff): See 4.1. (line 1050)
2.99 -ufraw <1>: See 6. (line 1204)
2.100 +pfshdrcalibrate (PFScalibration): See 6. (line 1259)
2.101 +pfsin (PFSTools): See 6. (line 1259)
2.102 +pfsout (PFSTools): See 6. (line 1259)
2.103 +pfstmo_* (PFStmo): See 6. (line 1259)
2.104 +pfsview (PFSTools): See 6. (line 1259)
2.105 +PTmender (PanoTools): See 6. (line 1232)
2.106 +PTOptimizer (PanoTools): See 6. (line 1232)
2.107 +tifficc (LittleCMS): See 6. (line 1282)
2.108 +tiffinfo (libtiff) <1>: See 6. (line 1274)
2.109 +tiffinfo (libtiff): See 4.1. (line 1059)
2.110 +ufraw <1>: See 6. (line 1213)
2.111 ufraw: See 2. (line 102)
2.112 -ufraw-batch: See 6. (line 1204)
2.113 +ufraw-batch: See 6. (line 1213)
2.114 Option Index
2.115 ************
2.116
2.117 ---anneal: See 3.3. (line 633)
2.118 ---coarse-mask: See 3.3. (line 679)
2.119 ---compression: See 3.1. (line 309)
2.120 ---depth: See 3.2. (line 507)
2.121 ---dijkstra: See 3.3. (line 719)
2.122 ---fine-mask: See 3.3. (line 732)
2.123 ---gpu: See 3.2. (line 604)
2.124 ---help: See 3.1. (line 345)
2.125 ---load-masks: See 3.3. (line 739)
2.126 ---mask-vectorize: See 3.3. (line 745)
2.127 ---no-optimize: See 3.3. (line 790)
2.128 ---optimize: See 3.3. (line 798)
2.129 ---optimizer-weights: See 3.3. (line 821)
2.130 ---output: See 3.1. (line 378)
2.131 ---save-masks: See 3.3. (line 848)
2.132 ---smooth-difference: See 3.3. (line 876)
2.133 ---verbose: See 3.1. (line 385)
2.134 ---version: See 3.1. (line 420)
2.135 ---visualize: See 3.3. (line 894)
2.136 ---wrap: See 3.1. (line 427)
2.137 --a: See 3.1. (line 301)
2.138 --b <1>: See 5. (line 1124)
2.139 --b: See 3.2. (line 485)
2.140 --c: See 3.2. (line 496)
2.141 --d: See 3.2. (line 507)
2.142 --f: See 3.2. (line 584)
2.143 --g: See 3.2. (line 592)
2.144 --h: See 3.1. (line 345)
2.145 --l: See 3.1. (line 348)
2.146 --m <1>: See 5. (line 1124)
2.147 --m: See 3.2. (line 616)
2.148 --o: See 3.1. (line 378)
2.149 --V: See 3.1. (line 420)
2.150 --v: See 3.1. (line 385)
2.151 --w: See 3.1. (line 427)
2.152 --x: See 3.1. (line 464)
2.153 +--anneal: See 3.3. (line 642)
2.154 +--coarse-mask: See 3.3. (line 688)
2.155 +--compression: See 3.1. (line 318)
2.156 +--depth: See 3.2. (line 516)
2.157 +--dijkstra: See 3.3. (line 728)
2.158 +--fine-mask: See 3.3. (line 741)
2.159 +--gpu: See 3.2. (line 613)
2.160 +--help: See 3.1. (line 354)
2.161 +--load-masks: See 3.3. (line 748)
2.162 +--mask-vectorize: See 3.3. (line 754)
2.163 +--no-optimize: See 3.3. (line 799)
2.164 +--optimize: See 3.3. (line 807)
2.165 +--optimizer-weights: See 3.3. (line 830)
2.166 +--output: See 3.1. (line 387)
2.167 +--save-masks: See 3.3. (line 857)
2.168 +--smooth-difference: See 3.3. (line 885)
2.169 +--verbose: See 3.1. (line 394)
2.170 +--version: See 3.1. (line 429)
2.171 +--visualize: See 3.3. (line 903)
2.172 +--wrap: See 3.1. (line 436)
2.173 +-a: See 3.1. (line 310)
2.174 +-b <1>: See 5. (line 1133)
2.175 +-b: See 3.2. (line 494)
2.176 +-c: See 3.2. (line 505)
2.177 +-d: See 3.2. (line 516)
2.178 +-f: See 3.2. (line 593)
2.179 +-g: See 3.2. (line 601)
2.180 +-h: See 3.1. (line 354)
2.181 +-l: See 3.1. (line 357)
2.182 +-m <1>: See 5. (line 1133)
2.183 +-m: See 3.2. (line 625)
2.184 +-o: See 3.1. (line 387)
2.185 +-V: See 3.1. (line 429)
2.186 +-v: See 3.1. (line 394)
2.187 +-w: See 3.1. (line 436)
2.188 +-x: See 3.1. (line 473)
2.189 General Index
2.190 *************
2.191
2.192 -360o panoramas: See 3.1. (line 427)
2.193 -a.tif: See 3.1. (line 380)
2.194 +360o panoramas: See 3.1. (line 436)
2.195 +a.tif: See 3.1. (line 389)
2.196 affine transformation: See 2. (line 139)
2.197 alpha channel <1>: See 2. (line 160)
2.198 alpha channel: See 1. (line 49)
2.199 -alpha channel, associated: See 3.2. (line 592)
2.200 -anneal parameters: See 3.3. (line 633)
2.201 +alpha channel, associated: See 3.2. (line 601)
2.202 +anneal parameters: See 3.3. (line 642)
2.203 authors, list of: See Appendix B.
2.204 - (line 1428)
2.205 -binary mask: See 4. (line 1034)
2.206 -bits per channel: See 3.2. (line 507)
2.207 -blur difference image: See 3.3. (line 876)
2.208 + (line 1437)
2.209 +binary mask: See 4. (line 1043)
2.210 +bits per channel: See 3.2. (line 516)
2.211 +blur difference image: See 3.3. (line 885)
2.212 bug reports: See Appendix A.
2.213 - (line 1281)
2.214 + (line 1290)
2.215 Burt-Adelson multiresolution spline: See 1. (line 37)
2.216 -channel width: See 3.2. (line 507)
2.217 +channel width: See 3.2. (line 516)
2.218 channel, alpha: See 1. (line 49)
2.219 -CIECAM02: See 3.2. (line 496)
2.220 -coarse mask: See 3.3. (line 679)
2.221 -color appearance model: See 3.2. (line 496)
2.222 -color space, sRGB: See 3.2. (line 498)
2.223 -colors, visualization image: See 3.3. (line 947)
2.224 -compression: See 3.1. (line 309)
2.225 -compression, deflate: See 3.1. (line 324)
2.226 -compression, JPEG: See 3.1. (line 315)
2.227 -compression, LZW: See 3.1. (line 330)
2.228 -compression, packbits: See 3.1. (line 334)
2.229 +CIECAM02: See 3.2. (line 505)
2.230 +coarse mask: See 3.3. (line 688)
2.231 +color appearance model: See 3.2. (line 505)
2.232 +color space, sRGB: See 3.2. (line 507)
2.233 +colors, visualization image: See 3.3. (line 956)
2.234 +compression: See 3.1. (line 318)
2.235 +compression, deflate: See 3.1. (line 333)
2.236 +compression, JPEG: See 3.1. (line 324)
2.237 +compression, LZW: See 3.1. (line 339)
2.238 +compression, packbits: See 3.1. (line 343)
2.239 conversion, raw: See 2. (line 126)
2.240 -default output filename: See 3.1. (line 380)
2.241 -deflate compression: See 3.1. (line 324)
2.242 -DIJKSTRA radius: See 3.3. (line 719)
2.243 -double precision float, IEEE754: See 3.2. (line 559)
2.244 +default output filename: See 3.1. (line 389)
2.245 +deflate compression: See 3.1. (line 333)
2.246 +DIJKSTRA radius: See 3.3. (line 728)
2.247 +double precision float, IEEE754: See 3.2. (line 568)
2.248 feathering, detrimental effect of: See 1. (line 56)
2.249 filenames, literal: See 3. (line 183)
2.250 -fine mask: See 3.3. (line 732)
2.251 +fine mask: See 3.3. (line 741)
2.252 format of response files: See 3. (line 231)
2.253 free documentation license (FDL): See Appendix C.
2.254 - (line 1467)
2.255 + (line 1476)
2.256 general index:
2.257 - See ``General Index''. (line 1946)
2.258 + See ``General Index''. (line 1955)
2.259 GNU free documentation license: See Appendix C.
2.260 - (line 1467)
2.261 -GPU (Graphics Processing Unit): See 3.2. (line 604)
2.262 + (line 1476)
2.263 +GPU (Graphics Processing Unit): See 3.2. (line 613)
2.264 grammar, response file: See 3. (line 245)
2.265 -graphics processing unit: See 3.2. (line 604)
2.266 -half precision float, OpenEXR: See 3.2. (line 574)
2.267 -helpful programs: See 6. (line 1197)
2.268 -Hugin: See A.2. (line 1371)
2.269 -ICC profile: See 3.2. (line 498)
2.270 -IEEE754 double precision float: See 3.2. (line 559)
2.271 -IEEE754 single precision float: See 3.2. (line 550)
2.272 -image cache: See 5. (line 1127)
2.273 -image cache, block size: See 3.2. (line 485)
2.274 -image cache, cache size: See 3.2. (line 616)
2.275 -image cache, location: See 5. (line 1138)
2.276 -image colors, visualization: See 3.3. (line 947)
2.277 +graphics processing unit: See 3.2. (line 613)
2.278 +half precision float, OpenEXR: See 3.2. (line 583)
2.279 +helpful programs: See 6. (line 1206)
2.280 +Hugin: See A.2. (line 1380)
2.281 +ICC profile: See 3.2. (line 507)
2.282 +IEEE754 double precision float: See 3.2. (line 568)
2.283 +IEEE754 single precision float: See 3.2. (line 559)
2.284 +image cache: See 5. (line 1136)
2.285 +image cache, block size: See 3.2. (line 494)
2.286 +image cache, cache size: See 3.2. (line 625)
2.287 +image cache, location: See 5. (line 1147)
2.288 +image colors, visualization: See 3.3. (line 956)
2.289 image, multi-layer: See 1. (line 70)
2.290 -image, visualization: See 3.3. (line 912)
2.291 +image, visualization: See 3.3. (line 921)
2.292 index, general:
2.293 - See ``General Index''. (line 1946)
2.294 + See ``General Index''. (line 1955)
2.295 index, option:
2.296 - See ``Option Index''. (line 1907)
2.297 + See ``Option Index''. (line 1916)
2.298 index, program:
2.299 - See ``Program Index''. (line 1865)
2.300 -input mask: See 4.1. (line 1046)
2.301 + See ``Program Index''. (line 1874)
2.302 +input mask: See 4.1. (line 1055)
2.303 invocation: See 3. (line 179)
2.304 -JPEG compression: See 3.1. (line 315)
2.305 -KImageFuser: See A.2. (line 1371)
2.306 +JPEG compression: See 3.1. (line 324)
2.307 +KImageFuser: See A.2. (line 1380)
2.308 lens distortion, correction of: See 2. (line 139)
2.309 -levels, pyramid: See 3.1. (line 348)
2.310 -LibJPEG: See 6. (line 1254)
2.311 -LibPNG: See 6. (line 1257)
2.312 -LibTiff: See 6. (line 1261)
2.313 +levels, pyramid: See 3.1. (line 357)
2.314 +LibJPEG: See 6. (line 1263)
2.315 +LibPNG: See 6. (line 1266)
2.316 +LibTiff: See 6. (line 1270)
2.317 literal filenames: See 3. (line 183)
2.318 -load mask: See 3.3. (line 739)
2.319 -loops in seam line: See 3.3. (line 775)
2.320 -LZW compression: See 3.1. (line 330)
2.321 -mask template character, %: See 3.3. (line 951)
2.322 -mask template character, B: See 3.3. (line 1000)
2.323 -mask template character, b: See 3.3. (line 994)
2.324 -mask template character, D: See 3.3. (line 991)
2.325 -mask template character, d: See 3.3. (line 985)
2.326 -mask template character, E: See 3.3. (line 1019)
2.327 -mask template character, e: See 3.3. (line 1013)
2.328 -mask template character, F: See 3.3. (line 1009)
2.329 -mask template character, f: See 3.3. (line 1003)
2.330 -mask template character, i: See 3.3. (line 954)
2.331 -mask template character, n: See 3.3. (line 969)
2.332 -mask template character, P: See 3.3. (line 982)
2.333 -mask template character, p: See 3.3. (line 974)
2.334 -mask template characters, table of: See 3.3. (line 950)
2.335 -mask, binary: See 4. (line 1034)
2.336 -mask, coarse: See 3.3. (line 679)
2.337 -mask, fine: See 3.3. (line 732)
2.338 -mask, generation: See 3.3. (line 714)
2.339 -mask, input files: See 4.1. (line 1046)
2.340 -mask, load: See 3.3. (line 739)
2.341 -mask, optimization visualization: See 3.3. (line 894)
2.342 -mask, save: See 3.3. (line 848)
2.343 -mask, vectorization distance: See 3.3. (line 745)
2.344 -mask, weight: See 4. (line 1034)
2.345 -masks, understanding: See 4. (line 1034)
2.346 -memory, tuning usage of: See 5. (line 1124)
2.347 +load mask: See 3.3. (line 748)
2.348 +loops in seam line: See 3.3. (line 784)
2.349 +LZW compression: See 3.1. (line 339)
2.350 +mask template character, %: See 3.3. (line 960)
2.351 +mask template character, B: See 3.3. (line 1009)
2.352 +mask template character, b: See 3.3. (line 1003)
2.353 +mask template character, D: See 3.3. (line 1000)
2.354 +mask template character, d: See 3.3. (line 994)
2.355 +mask template character, E: See 3.3. (line 1028)
2.356 +mask template character, e: See 3.3. (line 1022)
2.357 +mask template character, F: See 3.3. (line 1018)
2.358 +mask template character, f: See 3.3. (line 1012)
2.359 +mask template character, i: See 3.3. (line 963)
2.360 +mask template character, n: See 3.3. (line 978)
2.361 +mask template character, P: See 3.3. (line 991)
2.362 +mask template character, p: See 3.3. (line 983)
2.363 +mask template characters, table of: See 3.3. (line 959)
2.364 +mask, binary: See 4. (line 1043)
2.365 +mask, coarse: See 3.3. (line 688)
2.366 +mask, fine: See 3.3. (line 741)
2.367 +mask, generation: See 3.3. (line 723)
2.368 +mask, input files: See 4.1. (line 1055)
2.369 +mask, load: See 3.3. (line 748)
2.370 +mask, optimization visualization: See 3.3. (line 903)
2.371 +mask, save: See 3.3. (line 857)
2.372 +mask, vectorization distance: See 3.3. (line 754)
2.373 +mask, weight: See 4. (line 1043)
2.374 +masks, understanding: See 4. (line 1043)
2.375 +memory, tuning usage of: See 5. (line 1133)
2.376 multi-directory TIFF: See 1. (line 70)
2.377 multi-layer image: See 1. (line 70)
2.378 -nearest-feature transform (NFT): See 3.3. (line 714)
2.379 +nearest-feature transform (NFT): See 3.3. (line 723)
2.380 Octave: See Appendix A.
2.381 - (line 1281)
2.382 -OpenEXR, data format: See 3.2. (line 570)
2.383 -OpenEXR, half precision float: See 3.2. (line 574)
2.384 -optimize seam: See 3.3. (line 790)
2.385 -optimize strategy: See 3.3. (line 803)
2.386 -optimize, anneal parameters: See 3.3. (line 633)
2.387 -optimizer weights: See 3.3. (line 821)
2.388 -optimizer, simulated annealing: See 3.3. (line 633)
2.389 + (line 1290)
2.390 +OpenEXR, data format: See 3.2. (line 579)
2.391 +OpenEXR, half precision float: See 3.2. (line 583)
2.392 +optimize seam: See 3.3. (line 799)
2.393 +optimize strategy: See 3.3. (line 812)
2.394 +optimize, anneal parameters: See 3.3. (line 642)
2.395 +optimizer weights: See 3.3. (line 830)
2.396 +optimizer, simulated annealing: See 3.3. (line 642)
2.397 option index:
2.398 - See ``Option Index''. (line 1907)
2.399 -options, common: See 3.1. (line 298)
2.400 -options, extended: See 3.2. (line 481)
2.401 -options, mask generation: See 3.3. (line 630)
2.402 -output file compression: See 3.1. (line 309)
2.403 -output filename, default: See 3.1. (line 380)
2.404 -output image, set size of: See 3.2. (line 584)
2.405 + See ``Option Index''. (line 1916)
2.406 +options, common: See 3.1. (line 307)
2.407 +options, extended: See 3.2. (line 490)
2.408 +options, mask generation: See 3.3. (line 639)
2.409 +output file compression: See 3.1. (line 318)
2.410 +output filename, default: See 3.1. (line 389)
2.411 +output image, set size of: See 3.2. (line 593)
2.412 overview: See 1. (line 37)
2.413 -packbits compression: See 3.1. (line 334)
2.414 +packbits compression: See 3.1. (line 343)
2.415 parallax error: See 2. (line 149)
2.416 photometric alignment: See 2. (line 141)
2.417 problem reports: See Appendix A.
2.418 - (line 1284)
2.419 -profile, ICC: See 3.2. (line 498)
2.420 + (line 1293)
2.421 +profile, ICC: See 3.2. (line 507)
2.422 program index:
2.423 - See ``Program Index''. (line 1865)
2.424 -programs, helpful additional: See 6. (line 1197)
2.425 -pyramid levels: See 3.1. (line 348)
2.426 -radius, DIJKSTRA: See 3.3. (line 719)
2.427 + See ``Program Index''. (line 1874)
2.428 +programs, helpful additional: See 6. (line 1206)
2.429 +pyramid levels: See 3.1. (line 357)
2.430 +radius, DIJKSTRA: See 3.3. (line 728)
2.431 raw conversion: See 2. (line 126)
2.432 +response file, force recognition: See 3. (line 281)
2.433 response file, format: See 3. (line 231)
2.434 response file, grammar: See 3. (line 245)
2.435 response files: See 3. (line 183)
2.436 -save mask: See 3.3. (line 848)
2.437 -seam line, loops: See 3.3. (line 775)
2.438 -seam optimization: See 3.3. (line 790)
2.439 -simulated annealing optimizer: See 3.3. (line 633)
2.440 -single precision float, IEEE754: See 3.2. (line 550)
2.441 -smooth difference image: See 3.3. (line 876)
2.442 +save mask: See 3.3. (line 857)
2.443 +seam line, loops: See 3.3. (line 784)
2.444 +seam optimization: See 3.3. (line 799)
2.445 +simulated annealing optimizer: See 3.3. (line 642)
2.446 +single precision float, IEEE754: See 3.2. (line 559)
2.447 +smooth difference image: See 3.3. (line 885)
2.448 SourceForge <1>: See Appendix A.
2.449 - (line 1287)
2.450 + (line 1296)
2.451 SourceForge: See 1. (line 76)
2.452 SourceForge, tracker: See Appendix A.
2.453 - (line 1287)
2.454 -sRGB color space: See 3.2. (line 498)
2.455 + (line 1296)
2.456 +sRGB color space: See 3.2. (line 507)
2.457 TIFF, multi-directory: See 1. (line 70)
2.458 tiffcopy: See 1. (line 70)
2.459 tiffsplit: See 1. (line 70)
2.460 -TMPDIR: See 5. (line 1138)
2.461 +TMPDIR: See 5. (line 1147)
2.462 tracker, SourceForge: See Appendix A.
2.463 - (line 1287)
2.464 + (line 1296)
2.465 transformation, affine: See 2. (line 139)
2.466 -understanding masks: See 4. (line 1034)
2.467 -visualization image: See 3.3. (line 912)
2.468 -visualization image colors: See 3.3. (line 947)
2.469 -visualization of mask optimization: See 3.3. (line 894)
2.470 -weight mask: See 4. (line 1034)
2.471 -weights, optimizer: See 3.3. (line 821)
2.472 +understanding masks: See 4. (line 1043)
2.473 +visualization image: See 3.3. (line 921)
2.474 +visualization image colors: See 3.3. (line 956)
2.475 +visualization of mask optimization: See 3.3. (line 903)
2.476 +weight mask: See 4. (line 1043)
2.477 +weights, optimizer: See 3.3. (line 830)
2.478 workflow: See 2. (line 91)
2.479 workflow with Enblend: See 2. (line 102)
2.480 workflow with Enfuse: See 2. (line 102)
2.481 -wrap around: See 3.1. (line 427)
2.482 +wrap around: See 3.1. (line 436)
3.1 --- a/doc/enfuse.info Fri Nov 06 09:42:01 2009 +0100
3.2 +++ b/doc/enfuse.info Sat Nov 07 10:02:29 2009 +0100
3.3 @@ -200,7 +200,7 @@
3.4 *note Figure:photographic-workflow:: shows where Enblend and Enfuse sit
3.5 in this tool chain.
3.6
3.7 -Figure 2.1: Photographic workflow with Enblend and Enfuse.
3.8 + Figure 2.1: Photographic workflow with Enblend and Enfuse.
3.9
3.10 Take Images
3.11 Take _multiple_ images to form a panorama, an exposure series, a
3.12 @@ -361,7 +361,7 @@
3.13 For convenience whitespace at the beginning and at the end of each
3.14 line is ignored. However, this implies that response files cannot
3.15 represent filenames that start or end with whitespace, as there is
3.16 - no quoting syntax. Filenames with embedded whatespace cause no
3.17 + no quoting syntax. Filenames with embedded whitespace cause no
3.18 problems, though.
3.19
3.20 Only whole-line comments
3.21 @@ -377,7 +377,16 @@
3.22
3.23 Image filenames cannot start with `@'
3.24 An at-sign always introduces a response file, even if the extension
3.25 - would hinto towards an image.
3.26 + would hint towards an image.
3.27 +
3.28 + If Enblend or Enfuse do not recognize a response file, they will
3.29 +issue a warning. To force a file being recognized as a response file
3.30 +add one of the following syntactic comments to the _first_ line of the
3.31 +file.
3.32 +
3.33 + # response-file: true
3.34 + # enblend-response-file: true
3.35 + # enfuse-response-file: true
3.36
3.37 Here is an example of a valid response file.
3.38 # 4\pi panorama!
3.39 @@ -825,6 +834,42 @@
3.40 image (for example 255 or 65535). *note Figure:entropy-cutoff::
3.41 shows an example.
3.42
3.43 +
3.44 + +-----------+------------+-----------+------------+-----------+
3.45 + + + + + + +
3.46 + | : : : : |
3.47 + 1 ++......................................................####***
3.48 + | : : : : #**** |
3.49 + | : : : : *** |
3.50 + | : : : : *** |
3.51 + | : : : **** |
3.52 + 0.8 ++..............................................***..........++
3.53 + | : : : **** : |
3.54 + | : : : *** : |
3.55 + | : : : *** : |
3.56 + | : : :**** : |
3.57 + 0.6 ++..................................***......................++
3.58 + | : : ****: : |
3.59 + | : : *** : : |
3.60 + | : : *** : : |
3.61 + | : :**** : : |
3.62 + 0.4 ++......................***..................................++
3.63 + | : ****: : : |
3.64 + | : *** : : : |
3.65 + | : *** : : : |
3.66 + | : **** : : : |
3.67 + 0.2 ++..........***..............................................++
3.68 + | **** : : : |
3.69 + | *** : : : : |
3.70 + | *** : : : : |
3.71 + | **** : : : : |
3.72 + 0 ***#.................................................Y.******++
3.73 + | : EntropyCutoff(Y, Lower, Upper) ###### |
3.74 + + + + + + +
3.75 + +-----------+------------+-----------+------------+-----------+
3.76 + 0 0.2 0.4 0.6 0.8 1
3.77 + Y
3.78 +
3.79 Figure 3.1: Linear lightness Y in comparison with an
3.80 entropy-cutoff function for LOWER-CUTOFF = 5% and UPPER-CUTOFF =
3.81 90% which are rather extreme values.
3.82 @@ -1198,6 +1243,42 @@
3.83 defaults to 0.5 and Sigma defaults to 0.2. *note Figure:gaussian::
3.84 shows a Gaussian.
3.85
3.86 +
3.87 + 1 ++----------+------------+---*****---+------------+----------++
3.88 + + + + * * + Gaussian(Y) ****** +
3.89 + | ** ** |
3.90 + | ** ** |
3.91 + | * * |
3.92 + | * * |
3.93 + 0.8 ++ * * ++
3.94 + | * * |
3.95 + | * * |
3.96 + | * * |
3.97 + | * * |
3.98 + | * * |
3.99 + 0.6 ++ * * ++
3.100 + | * * |
3.101 + | * * |
3.102 + | * * |
3.103 + | * * |
3.104 + | ** ** |
3.105 + | * * |
3.106 + 0.4 ++ * * ++
3.107 + | * * |
3.108 + | * * |
3.109 + | ** ** |
3.110 + | * * |
3.111 + | ** ** |
3.112 + 0.2 ++ ** ** ++
3.113 + | ** ** |
3.114 + | * * |
3.115 + | ** ** |
3.116 + |*** ***|
3.117 + * + + + + *
3.118 + 0 ++----------+------------+-----------+------------+----------++
3.119 + 0 0.2 0.4 0.6 0.8 1
3.120 + Y
3.121 +
3.122 Figure 4.1: Gaussian function with the parameters MU = 0.5 and SIGMA =
3.123 0.2.
3.124
3.125 @@ -1291,7 +1372,7 @@
3.126 *note Figure:local-analysis-window:: shows two windows with different
3.127 sizes.
3.128
3.129 -Figure 4.2: Examples of local analysis windows for the sizes 3 and 5.
3.130 + Figure 4.2: Examples of local analysis windows for the sizes 3 and 5.
3.131 "C" marks the center where the pixel gets the weight. "N" are
3.132 neighboring pixels, which all contribute equally to the weight.
3.133
3.134 @@ -1380,6 +1461,42 @@
3.135 origin, which is why we can easily plot it in *note
3.136 Figure:laplacian-of-gaussian::, setting R = sqrt(x^2 + y^2).
3.137
3.138 +
3.139 + 1 ++--------------+---------------+---------------+--------------++
3.140 + + + ***** + +
3.141 + | : **** : ******* : |
3.142 + | : ** : *******: |
3.143 + 0 ++.....................**.......................*****************
3.144 + | : ** : : |
3.145 + | : * : : |
3.146 + | : ** : : |
3.147 + | : * : : |
3.148 + -1 ++...............**............................................++
3.149 + | :* : : |
3.150 + | * : : |
3.151 + | * : : |
3.152 + -2 ++.............*...............................................++
3.153 + | * : : : |
3.154 + | ** : : : |
3.155 + | * : : : |
3.156 + | * : : : |
3.157 + -3 ++.........*...................................................++
3.158 + | * : : : |
3.159 + | * : : : |
3.160 + | ** : : : |
3.161 + -4 ++......*......................................................++
3.162 + | * : : : |
3.163 + | * : : : |
3.164 + | * : : : |
3.165 + | ** : : : |
3.166 + -5 ***............................................................++
3.167 + | : : : |
3.168 + | : LaplacianOfGaussian(R, 0.5) ****** |
3.169 + + + + + +
3.170 + -6 ++--------------+---------------+---------------+--------------++
3.171 + 0 0.5 1 1.5 2
3.172 + R
3.173 +
3.174 Figure 4.3: Laplacian-of-Gaussian function for sigma = 0.5.
3.175
3.176 See also HIPR2: Laplacian of Gaussian
3.177 @@ -1488,6 +1605,42 @@
3.178 lim(p * log_a(1 / p), p -> 0) = 0.
3.179 *note Figure:entropy:: shows an entropy function.
3.180
3.181 +
3.182 + 1 ++----------+------------+-*********-+------------+----------++
3.183 + + + **** **** Entropy(p) ****** +
3.184 + | *** *** |
3.185 + | *** *** |
3.186 + | ** ** |
3.187 + | ** ** |
3.188 + 0.8 ++ ** ** ++
3.189 + | * * |
3.190 + | * * |
3.191 + | * * |
3.192 + | * * |
3.193 + | * * |
3.194 + 0.6 ++ * * ++
3.195 + | * * |
3.196 + | * * |
3.197 + | * * |
3.198 + | * * |
3.199 + | * * |
3.200 + | * * |
3.201 + 0.4 ++ * * ++
3.202 + | * * |
3.203 + | * * |
3.204 + | * * |
3.205 + | * * |
3.206 + | * * |
3.207 + 0.2 ++* *++
3.208 + | * *|
3.209 + |* *|
3.210 + |* *|
3.211 + | |
3.212 + + + + + + +
3.213 + 0 ++----------+------------+-----------+------------+----------++
3.214 + 0 0.2 0.4 0.6 0.8 1
3.215 + p
3.216 +
3.217 Figure 4.4: Entropy function H for an experiment with exactly two
3.218 outcomes.
3.219
3.220 @@ -2073,9 +2226,73 @@
3.221 Images *note Figure:sharp-edge:: and *note Figure:smooth-edge:: show
3.222 plots of the matrices `sharp_edge' and `smooth_edge'.
3.223
3.224 +
3.225 +
3.226 +
3.227 +
3.228 + sharp_edge ******
3.229 + 250 $$$$$$
3.230 + 200 %%%%%%
3.231 + 150 @@@@@@
3.232 + ### 100 &&&&&&
3.233 + ### # 50 ======
3.234 + ### #
3.235 + # ## #
3.236 + 300 ++ ### # #
3.237 + 250 |+ ## # #
3.238 + | ##### # #
3.239 + 200 |+ # # # # # #####
3.240 + | # # # # ## ########
3.241 + 100 |+ ## # ##*# ########### ############
3.242 + | # # -#* # ## ######## ## |
3.243 + 50 |+ ## ## -%%@** ###### ## ##### |
3.244 + | ## ## -@%%@@&&**## ######## ## |
3.245 + 0 ##### -#=&&&======####. ## ####---- |
3.246 + | ####+==&@@@@%%@@&** ########. ##.+ ---- 4
3.247 + | --- ==&@@ .%%$$%@@&* ## #####.... --+
3.248 + | -- ++=&&@ .%% %%@@& ==*###.. ##.. ..+ 3
3.249 + +--- =&.@%%%%@@&===.. #####..... ---
3.250 + 0 + -----=&&&& ======.... .| .. 2
3.251 + 1 ==&&@@@@&& = ......|. ---
3.252 + 2 --@-&-= +.. | ..- 1
3.253 + 3----- |+--
3.254 + 4- 0
3.255 +
3.256 Figure 7.1: 3D plot augmented by contour plot of the matrix
3.257 `sharp_edge'.
3.258
3.259 +
3.260 +
3.261 +
3.262 +
3.263 + smooth_edge ******
3.264 + 250 $$$$$$
3.265 + 200 %%%%%%
3.266 + 150 @@@@@@
3.267 + 100 &&&&&&
3.268 + 50 ======
3.269 + ########
3.270 + ######## ## |
3.271 + 300 ++ ######## ######### |
3.272 + 250 |+ ####### ######### ## |
3.273 + | ## ######## ######## |
3.274 + 200 |+ ######## ######## ## |
3.275 + | #### ######## ######### |
3.276 + 100 |+ ########################## |
3.277 + | ######### ######### | |
3.278 + 50 |+ ## ######### -==-----| |
3.279 + |######### ---+.. ==.+ &&-------- |
3.280 + 0 ## --- .===.... && |.+@@@ ---%%--- |
3.281 + | --++... ==. &&&....@@@ .%% -$$ 4
3.282 + | --- ===....&&& ..@@| ...%%%.. $$-+
3.283 + | -- ++.. ====. && .....@@. | %% ..$ 3
3.284 + +--- ==.......&& .. @@ .|.%%... $$-
3.285 + 0 + ---=-- &&......@@ .%% .$ 2
3.286 + 1 ---&&- +.. @@ ...%%%|. $$-
3.287 + 2 ---@@- +%% | ..$ 1
3.288 + 3--%-- |+$$
3.289 + 4- 0
3.290 +
3.291 Figure 7.2: 3D plot augmented by contour plot of the matrix
3.292 `smooth_edge'.
3.293
3.294 @@ -2196,7 +2413,7 @@
3.295 Figure *note Figure:focus-stacking-decision-tree:: helps the user to
3.296 arrive at a well-fused focus stack with as few steps as possible.
3.297
3.298 -Figure 7.3: Focus stacking decision tree.
3.299 + Figure 7.3: Focus stacking decision tree.
3.300
3.301 Always start with the default, contrast weighting with a local
3.302 contrast window. Only if seams appear as described in *note Advanced
3.303 @@ -2939,337 +3156,338 @@
3.304 Program Index
3.305 *************
3.306
3.307 -ale: See 8. (line 2267)
3.308 -align_image_stack (Hugin): See 8. (line 2274)
3.309 -cinepaint <1>: See 8. (line 2286)
3.310 -cinepaint: See 3.2. (line 686)
3.311 -convert (ImageMagick): See 8. (line 2297)
3.312 -dcraw <1>: See 8. (line 2257)
3.313 +ale: See 8. (line 2484)
3.314 +align_image_stack (Hugin): See 8. (line 2491)
3.315 +cinepaint <1>: See 8. (line 2503)
3.316 +cinepaint: See 3.2. (line 695)
3.317 +convert (ImageMagick): See 8. (line 2514)
3.318 +dcraw <1>: See 8. (line 2474)
3.319 dcraw: See 2. (line 203)
3.320 -display (ImageMagick): See 8. (line 2297)
3.321 -exiftool: See 8. (line 2325)
3.322 -exrdisplay (OpenEXR): See 8. (line 2303)
3.323 -fulla (Hugin): See 8. (line 2274)
3.324 -gimp <1>: See 8. (line 2293)
3.325 -gimp <2>: See 3.2. (line 686)
3.326 +display (ImageMagick): See 8. (line 2514)
3.327 +exiftool: See 8. (line 2542)
3.328 +exrdisplay (OpenEXR): See 8. (line 2520)
3.329 +fulla (Hugin): See 8. (line 2491)
3.330 +gimp <1>: See 8. (line 2510)
3.331 +gimp <2>: See 3.2. (line 695)
3.332 gimp: See 2. (line 203)
3.333 -gm (GraphicsMagick): See 8. (line 2297)
3.334 -hugin <1>: See 8. (line 2271)
3.335 -hugin <2>: See 7.1. (line 1711)
3.336 -hugin <3>: See 3.2. (line 677)
3.337 +gm (GraphicsMagick): See 8. (line 2514)
3.338 +hugin <1>: See 8. (line 2488)
3.339 +hugin <2>: See 7.1. (line 1864)
3.340 +hugin <3>: See 3.2. (line 686)
3.341 hugin: See 2. (line 203)
3.342 -identify (ImageMagick) <1>: See 8. (line 2297)
3.343 -identify (ImageMagick): See 5.1. (line 1550)
3.344 -montage (ImageMagick): See 8. (line 2297)
3.345 -nona (Hugin) <1>: See 8. (line 2274)
3.346 -nona (Hugin): See 3.2. (line 677)
3.347 +identify (ImageMagick) <1>: See 8. (line 2514)
3.348 +identify (ImageMagick): See 5.1. (line 1703)
3.349 +montage (ImageMagick): See 8. (line 2514)
3.350 +nona (Hugin) <1>: See 8. (line 2491)
3.351 +nona (Hugin): See 3.2. (line 686)
3.352 PanoTools: See 2. (line 203)
3.353 -pfshdrcalibrate (PFScalibration): See 8. (line 2306)
3.354 -pfsin (PFSTools): See 8. (line 2306)
3.355 -pfsout (PFSTools): See 8. (line 2306)
3.356 -pfstmo_* (PFStmo): See 8. (line 2306)
3.357 -pfsview (PFSTools): See 8. (line 2306)
3.358 -PTmender (PanoTools): See 8. (line 2279)
3.359 -PTOptimizer (PanoTools): See 8. (line 2279)
3.360 -tifficc (LittleCMS): See 8. (line 2329)
3.361 -tiffinfo (libtiff) <1>: See 8. (line 2321)
3.362 -tiffinfo (libtiff): See 5.1. (line 1550)
3.363 -ufraw <1>: See 8. (line 2260)
3.364 +pfshdrcalibrate (PFScalibration): See 8. (line 2523)
3.365 +pfsin (PFSTools): See 8. (line 2523)
3.366 +pfsout (PFSTools): See 8. (line 2523)
3.367 +pfstmo_* (PFStmo): See 8. (line 2523)
3.368 +pfsview (PFSTools): See 8. (line 2523)
3.369 +PTmender (PanoTools): See 8. (line 2496)
3.370 +PTOptimizer (PanoTools): See 8. (line 2496)
3.371 +tifficc (LittleCMS): See 8. (line 2546)
3.372 +tiffinfo (libtiff) <1>: See 8. (line 2538)
3.373 +tiffinfo (libtiff): See 5.1. (line 1703)
3.374 +ufraw <1>: See 8. (line 2477)
3.375 ufraw: See 2. (line 203)
3.376 -ufraw-batch: See 8. (line 2260)
3.377 +ufraw-batch: See 8. (line 2477)
3.378 Option Index
3.379 ************
3.380
3.381 ---compression: See 3.1. (line 402)
3.382 ---contrast-edge-scale: See 3.4. (line 791)
3.383 ---contrast-min-curvature: See 3.4. (line 928)
3.384 ---contrast-weight: See 3.3. (line 712)
3.385 ---contrast-window-size: See 3.4. (line 771)
3.386 ---ContrastWindowSize (deprecated): See 3.4. (line 771)
3.387 ---depth: See 3.2. (line 597)
3.388 ---EdgeScale (deprecated): See 3.4. (line 791)
3.389 ---entropy-cutoff: See 3.4. (line 812)
3.390 ---entropy-weight: See 3.3. (line 719)
3.391 ---entropy-window-size: See 3.4. (line 841)
3.392 ---EntropyCutoff (deprecated): See 3.4. (line 812)
3.393 ---EntropyWindowSize (deprecated): See 3.4. (line 841)
3.394 ---exposure-mu: See 3.3. (line 735)
3.395 ---exposure-sigma: See 3.3. (line 745)
3.396 ---exposure-weight: See 3.3. (line 727)
3.397 ---gray-projector: See 3.4. (line 857)
3.398 ---GrayProjector (deprecated): See 3.4. (line 857)
3.399 ---hard-mask <1>: See 7.6.6. (line 2235)
3.400 ---hard-mask <2>: See 4.1.2. (line 1155)
3.401 ---hard-mask: See 3.4. (line 914)
3.402 ---HardMask (deprecated): See 3.4. (line 914)
3.403 ---help: See 3.1. (line 439)
3.404 ---MinCurvature (deprecated): See 3.4. (line 928)
3.405 ---output: See 3.1. (line 472)
3.406 ---saturation-weight: See 3.3. (line 756)
3.407 ---save-masks: See 3.4. (line 946)
3.408 ---SaveMasks (deprecated): See 3.4. (line 946)
3.409 ---soft-mask: See 3.4. (line 974)
3.410 ---SoftMask (deprecated): See 3.4. (line 974)
3.411 ---verbose: See 3.1. (line 479)
3.412 ---version: See 3.1. (line 514)
3.413 ---wContrast (deprecated): See 3.3. (line 712)
3.414 ---wEntropy (deprecated): See 3.3. (line 719)
3.415 ---wExposureMu (deprecated): See 3.3. (line 727)
3.416 ---wExposureSigma (deprecated): See 3.3. (line 745)
3.417 ---wrap: See 3.1. (line 521)
3.418 ---wSaturation (deprecated): See 3.3. (line 756)
3.419 --b <1>: See 6. (line 1624)
3.420 --b: See 3.2. (line 575)
3.421 --c: See 3.2. (line 586)
3.422 --d: See 3.2. (line 597)
3.423 --f: See 3.2. (line 674)
3.424 --g: See 3.2. (line 682)
3.425 --h: See 3.1. (line 439)
3.426 --l: See 3.1. (line 442)
3.427 --m <1>: See 6. (line 1624)
3.428 --m: See 3.2. (line 694)
3.429 --o: See 3.1. (line 472)
3.430 --V: See 3.1. (line 514)
3.431 --v: See 3.1. (line 479)
3.432 --w: See 3.1. (line 521)
3.433 +--compression: See 3.1. (line 411)
3.434 +--contrast-edge-scale: See 3.4. (line 800)
3.435 +--contrast-min-curvature: See 3.4. (line 973)
3.436 +--contrast-weight: See 3.3. (line 721)
3.437 +--contrast-window-size: See 3.4. (line 780)
3.438 +--ContrastWindowSize (deprecated): See 3.4. (line 780)
3.439 +--depth: See 3.2. (line 606)
3.440 +--EdgeScale (deprecated): See 3.4. (line 800)
3.441 +--entropy-cutoff: See 3.4. (line 821)
3.442 +--entropy-weight: See 3.3. (line 728)
3.443 +--entropy-window-size: See 3.4. (line 886)
3.444 +--EntropyCutoff (deprecated): See 3.4. (line 821)
3.445 +--EntropyWindowSize (deprecated): See 3.4. (line 886)
3.446 +--exposure-mu: See 3.3. (line 744)
3.447 +--exposure-sigma: See 3.3. (line 754)
3.448 +--exposure-weight: See 3.3. (line 736)
3.449 +--gray-projector: See 3.4. (line 902)
3.450 +--GrayProjector (deprecated): See 3.4. (line 902)
3.451 +--hard-mask <1>: See 7.6.6. (line 2452)
3.452 +--hard-mask <2>: See 4.1.2. (line 1200)
3.453 +--hard-mask: See 3.4. (line 959)
3.454 +--HardMask (deprecated): See 3.4. (line 959)
3.455 +--help: See 3.1. (line 448)
3.456 +--MinCurvature (deprecated): See 3.4. (line 973)
3.457 +--output: See 3.1. (line 481)
3.458 +--saturation-weight: See 3.3. (line 765)
3.459 +--save-masks: See 3.4. (line 991)
3.460 +--SaveMasks (deprecated): See 3.4. (line 991)
3.461 +--soft-mask: See 3.4. (line 1019)
3.462 +--SoftMask (deprecated): See 3.4. (line 1019)
3.463 +--verbose: See 3.1. (line 488)
3.464 +--version: See 3.1. (line 523)
3.465 +--wContrast (deprecated): See 3.3. (line 721)
3.466 +--wEntropy (deprecated): See 3.3. (line 728)
3.467 +--wExposureMu (deprecated): See 3.3. (line 736)
3.468 +--wExposureSigma (deprecated): See 3.3. (line 754)
3.469 +--wrap: See 3.1. (line 530)
3.470 +--wSaturation (deprecated): See 3.3. (line 765)
3.471 +-b <1>: See 6. (line 1777)
3.472 +-b: See 3.2. (line 584)
3.473 +-c: See 3.2. (line 595)
3.474 +-d: See 3.2. (line 606)
3.475 +-f: See 3.2. (line 683)
3.476 +-g: See 3.2. (line 691)
3.477 +-h: See 3.1. (line 448)
3.478 +-l: See 3.1. (line 451)
3.479 +-m <1>: See 6. (line 1777)
3.480 +-m: See 3.2. (line 703)
3.481 +-o: See 3.1. (line 481)
3.482 +-V: See 3.1. (line 523)
3.483 +-v: See 3.1. (line 488)
3.484 +-w: See 3.1. (line 530)
3.485 General Index
3.486 *************
3.487
3.488 -360o panoramas: See 3.1. (line 521)
3.489 -a.tif: See 3.1. (line 474)
3.490 -advanced focus stacking: See 7.6.5. (line 2046)
3.491 +360o panoramas: See 3.1. (line 530)
3.492 +a.tif: See 3.1. (line 483)
3.493 +advanced focus stacking: See 7.6.5. (line 2199)
3.494 advanced focus stacking, recognizing faint edges:See 7.6.5.4.
3.495 - (line 2140)
3.496 -advanced focus stacking, suppressing noise: See 7.6.5.4. (line 2140)
3.497 + (line 2357)
3.498 +advanced focus stacking, suppressing noise: See 7.6.5.4. (line 2357)
3.499 affine transformation: See 2. (line 240)
3.500 alpha channel <1>: See 2. (line 261)
3.501 alpha channel: See 1. (line 155)
3.502 -alpha channel, associated: See 3.2. (line 682)
3.503 -aperture, sweet spot: See 7.6.1. (line 1955)
3.504 -applications of enfuse: See 7. (line 1697)
3.505 +alpha channel, associated: See 3.2. (line 691)
3.506 +aperture, sweet spot: See 7.6.1. (line 2108)
3.507 +applications of enfuse: See 7. (line 1850)
3.508 authors, list of: See Appendix B.
3.509 - (line 2484)
3.510 -average, disabling: See 4.1.2. (line 1155)
3.511 -average, weighted: See 4.1.1. (line 1143)
3.512 -basic focus stacking: See 7.6.4. (line 2018)
3.513 -binary mask: See 5. (line 1534)
3.514 -bits per channel: See 3.2. (line 597)
3.515 -blending exposures: See 7.3.2. (line 1873)
3.516 + (line 2701)
3.517 +average, disabling: See 4.1.2. (line 1200)
3.518 +average, weighted: See 4.1.1. (line 1188)
3.519 +basic focus stacking: See 7.6.4. (line 2171)
3.520 +binary mask: See 5. (line 1687)
3.521 +bits per channel: See 3.2. (line 606)
3.522 +blending exposures: See 7.3.2. (line 2026)
3.523 bug reports: See Appendix A.
3.524 - (line 2337)
3.525 + (line 2554)
3.526 Burt-Adelson multiresolution spline: See 1. (line 112)
3.527 -channel width: See 3.2. (line 597)
3.528 +channel width: See 3.2. (line 606)
3.529 channel, alpha: See 1. (line 155)
3.530 -CIECAM02: See 3.2. (line 586)
3.531 -circle-of-confusion: See 7.6.1. (line 1943)
3.532 -color appearance model: See 3.2. (line 586)
3.533 -color space, sRGB: See 3.2. (line 588)
3.534 -compression: See 3.1. (line 402)
3.535 -compression, deflate: See 3.1. (line 417)
3.536 -compression, JPEG: See 3.1. (line 408)
3.537 -compression, LZW: See 3.1. (line 423)
3.538 -compression, packbits: See 3.1. (line 427)
3.539 -contrast enhancement, local: See 7.6.5.3. (line 2119)
3.540 -contrast weighting using a blend of methods: See 4.4.3. (line 1419)
3.541 -contrast weighting using laplacian-of-gaussian:See 4.4.2. (line 1357)
3.542 -contrast weighting using standard deviation: See 4.4.1. (line 1288)
3.543 -conversion, L*a*b*: See 3.4. (line 888)
3.544 +CIECAM02: See 3.2. (line 595)
3.545 +circle-of-confusion: See 7.6.1. (line 2096)
3.546 +color appearance model: See 3.2. (line 595)
3.547 +color space, sRGB: See 3.2. (line 597)
3.548 +compression: See 3.1. (line 411)
3.549 +compression, deflate: See 3.1. (line 426)
3.550 +compression, JPEG: See 3.1. (line 417)
3.551 +compression, LZW: See 3.1. (line 432)
3.552 +compression, packbits: See 3.1. (line 436)
3.553 +contrast enhancement, local: See 7.6.5.3. (line 2336)
3.554 +contrast weighting using a blend of methods: See 4.4.3. (line 1536)
3.555 +contrast weighting using laplacian-of-gaussian:See 4.4.2. (line 1438)
3.556 +contrast weighting using standard deviation: See 4.4.1. (line 1369)
3.557 +conversion, L*a*b*: See 3.4. (line 933)
3.558 conversion, raw: See 2. (line 227)
3.559 -dark frame: See 7.6.6. (line 2231)
3.560 -decision tree, focus stacking: See 7.6.5.5. (line 2196)
3.561 -default output filename: See 3.1. (line 474)
3.562 -deflate compression: See 3.1. (line 417)
3.563 -delimiters, option: See 3.5. (line 1055)
3.564 -depth-of-field: See 7.6.1. (line 1946)
3.565 -depth-of-focus increase: See 7.6. (line 1927)
3.566 -digital blending: See 7.3.2. (line 1873)
3.567 -disabling average: See 4.1.2. (line 1155)
3.568 -double precision float, IEEE754: See 3.2. (line 649)
3.569 -dynamic range increase <1>: See 7.4. (line 1911)
3.570 -dynamic range increase: See 7.3. (line 1808)
3.571 -edge detection, laplacian: See 7.6.5.2. (line 2099)
3.572 -entropy: See 4.5. (line 1480)
3.573 -entropy, definition: See 4.5. (line 1477)
3.574 -estimators: See 4.4.1.2. (line 1338)
3.575 -expectation value: See 4.4.1.1. (line 1322)
3.576 -expert focus stacking tips: See 7.6.6. (line 2219)
3.577 -exposure series: See 7.3. (line 1808)
3.578 -exposure series, common misconceptions: See 7.3.2. (line 1870)
3.579 -exposure series, tips for beginners: See 7.3.1. (line 1846)
3.580 -filename template: See 3.4. (line 951)
3.581 +dark frame: See 7.6.6. (line 2448)
3.582 +decision tree, focus stacking: See 7.6.5.5. (line 2413)
3.583 +default output filename: See 3.1. (line 483)
3.584 +deflate compression: See 3.1. (line 426)
3.585 +delimiters, option: See 3.5. (line 1100)
3.586 +depth-of-field: See 7.6.1. (line 2099)
3.587 +depth-of-focus increase: See 7.6. (line 2080)
3.588 +digital blending: See 7.3.2. (line 2026)
3.589 +disabling average: See 4.1.2. (line 1200)
3.590 +double precision float, IEEE754: See 3.2. (line 658)
3.591 +dynamic range increase <1>: See 7.4. (line 2064)
3.592 +dynamic range increase: See 7.3. (line 1961)
3.593 +edge detection, laplacian: See 7.6.5.2. (line 2316)
3.594 +entropy: See 4.5. (line 1597)
3.595 +entropy, definition: See 4.5. (line 1594)
3.596 +estimators: See 4.4.1.2. (line 1419)
3.597 +expectation value: See 4.4.1.1. (line 1403)
3.598 +expert focus stacking tips: See 7.6.6. (line 2436)
3.599 +exposure series: See 7.3. (line 1961)
3.600 +exposure series, common misconceptions: See 7.3.2. (line 2023)
3.601 +exposure series, tips for beginners: See 7.3.1. (line 1999)
3.602 +filename template: See 3.4. (line 996)
3.603 filenames, literal: See 3. (line 284)
3.604 -flash exposure series: See 7.4. (line 1911)
3.605 -focus stacking decision tree: See 7.6.5.5. (line 2196)
3.606 -focus stacking, advanced: See 7.6.5. (line 2046)
3.607 -focus stacking, basic: See 7.6.4. (line 2018)
3.608 -focus stacks: See 7.6. (line 1927)
3.609 -focus stacks, fusing: See 7.6.3. (line 1980)
3.610 -focus stacks, preparation: See 7.6.2. (line 1966)
3.611 -focus stacks, why create them: See 7.6.1. (line 1937)
3.612 +flash exposure series: See 7.4. (line 2064)
3.613 +focus stacking decision tree: See 7.6.5.5. (line 2413)
3.614 +focus stacking, advanced: See 7.6.5. (line 2199)
3.615 +focus stacking, basic: See 7.6.4. (line 2171)
3.616 +focus stacks: See 7.6. (line 2080)
3.617 +focus stacks, fusing: See 7.6.3. (line 2133)
3.618 +focus stacks, preparation: See 7.6.2. (line 2119)
3.619 +focus stacks, why create them: See 7.6.1. (line 2090)
3.620 format of response files: See 3. (line 332)
3.621 free documentation license (FDL): See Appendix C.
3.622 - (line 2523)
3.623 -fusing, local-contrast-based: See 7.6.3. (line 1980)
3.624 + (line 2740)
3.625 +fusing, local-contrast-based: See 7.6.3. (line 2133)
3.626 general index:
3.627 - See ``General Index''. (line 3038)
3.628 + See ``General Index''. (line 3255)
3.629 GNU free documentation license: See Appendix C.
3.630 - (line 2523)
3.631 + (line 2740)
3.632 grammar, response file: See 3. (line 346)
3.633 -gray projector: See 3.4. (line 857)
3.634 -gray projector, average: See 3.4. (line 868)
3.635 -gray projector, channel-mixer: See 3.4. (line 874)
3.636 -gray projector, l-star: See 3.4. (line 888)
3.637 -gray projector, lightness: See 3.4. (line 898)
3.638 -gray projector, luminance: See 3.4. (line 903)
3.639 -gray projector, value: See 3.4. (line 909)
3.640 -half precision float, OpenEXR: See 3.2. (line 664)
3.641 -helpful programs: See 8. (line 2253)
3.642 -hot pixels: See 7.6.6. (line 2231)
3.643 -Hugin: See A.2. (line 2427)
3.644 -ICC profile: See 3.2. (line 588)
3.645 -IEEE754 double precision float: See 3.2. (line 649)
3.646 -IEEE754 single precision float: See 3.2. (line 640)
3.647 -image cache: See 6. (line 1627)
3.648 -image cache, block size: See 3.2. (line 575)
3.649 -image cache, cache size: See 3.2. (line 694)
3.650 -image cache, location: See 6. (line 1638)
3.651 +gray projector: See 3.4. (line 902)
3.652 +gray projector, average: See 3.4. (line 913)
3.653 +gray projector, channel-mixer: See 3.4. (line 919)
3.654 +gray projector, l-star: See 3.4. (line 933)
3.655 +gray projector, lightness: See 3.4. (line 943)
3.656 +gray projector, luminance: See 3.4. (line 948)
3.657 +gray projector, value: See 3.4. (line 954)
3.658 +half precision float, OpenEXR: See 3.2. (line 673)
3.659 +helpful programs: See 8. (line 2470)
3.660 +hot pixels: See 7.6.6. (line 2448)
3.661 +Hugin: See A.2. (line 2644)
3.662 +ICC profile: See 3.2. (line 597)
3.663 +IEEE754 double precision float: See 3.2. (line 658)
3.664 +IEEE754 single precision float: See 3.2. (line 649)
3.665 +image cache: See 6. (line 1780)
3.666 +image cache, block size: See 3.2. (line 584)
3.667 +image cache, cache size: See 3.2. (line 703)
3.668 +image cache, location: See 6. (line 1791)
3.669 image, multi-layer: See 1. (line 163)
3.670 -images, fusable: See 7.1. (line 1704)
3.671 +images, fusable: See 7.1. (line 1857)
3.672 index, general:
3.673 - See ``General Index''. (line 3038)
3.674 + See ``General Index''. (line 3255)
3.675 index, option:
3.676 - See ``Option Index''. (line 2983)
3.677 + See ``Option Index''. (line 3200)
3.678 index, program:
3.679 - See ``Program Index''. (line 2942)
3.680 -input mask: See 5.1. (line 1546)
3.681 + See ``Program Index''. (line 3159)
3.682 +input mask: See 5.1. (line 1699)
3.683 invocation: See 3. (line 280)
3.684 -JPEG compression: See 3.1. (line 408)
3.685 -KImageFuser: See A.2. (line 2427)
3.686 -L*a*b* conversion: See 3.4. (line 888)
3.687 -laplacian edge detection: See 7.6.5.2. (line 2099)
3.688 -Laplacian of Gaussian (LoG): See 4.4.2. (line 1357)
3.689 +JPEG compression: See 3.1. (line 417)
3.690 +KImageFuser: See A.2. (line 2644)
3.691 +L*a*b* conversion: See 3.4. (line 933)
3.692 +laplacian edge detection: See 7.6.5.2. (line 2316)
3.693 +Laplacian of Gaussian (LoG): See 4.4.2. (line 1438)
3.694 lens distortion, correction of: See 2. (line 240)
3.695 -levels, pyramid: See 3.1. (line 442)
3.696 -LibJPEG: See 8. (line 2310)
3.697 -LibPNG: See 8. (line 2313)
3.698 -LibTiff: See 8. (line 2317)
3.699 -light probe: See 7.3.2. (line 1892)
3.700 +levels, pyramid: See 3.1. (line 451)
3.701 +LibJPEG: See 8. (line 2527)
3.702 +LibPNG: See 8. (line 2530)
3.703 +LibTiff: See 8. (line 2534)
3.704 +light probe: See 7.3.2. (line 2045)
3.705 literal filenames: See 3. (line 284)
3.706 -local analysis window: See 4.4.1. (line 1288)
3.707 -local contrast enhancement: See 7.6.5.3. (line 2119)
3.708 -local contrast problem: See 7.6.5.1. (line 2053)
3.709 -local-contrast-based fusing: See 7.6.3. (line 1980)
3.710 -LZW compression: See 3.1. (line 423)
3.711 -mask template character, %: See 3.4. (line 979)
3.712 -mask template character, B: See 3.4. (line 1028)
3.713 -mask template character, b: See 3.4. (line 1022)
3.714 -mask template character, D: See 3.4. (line 1019)
3.715 -mask template character, d: See 3.4. (line 1013)
3.716 -mask template character, E: See 3.4. (line 1047)
3.717 -mask template character, e: See 3.4. (line 1041)
3.718 -mask template character, F: See 3.4. (line 1037)
3.719 -mask template character, f: See 3.4. (line 1031)
3.720 -mask template character, i: See 3.4. (line 982)
3.721 -mask template character, n: See 3.4. (line 997)
3.722 -mask template character, P: See 3.4. (line 1010)
3.723 -mask template character, p: See 3.4. (line 1002)
3.724 -mask template characters, table of: See 3.4. (line 978)
3.725 -mask, binary: See 5. (line 1534)
3.726 -mask, filename template: See 3.4. (line 951)
3.727 -mask, input files: See 5.1. (line 1546)
3.728 -mask, saving: See 3.4. (line 948)
3.729 -mask, weight: See 5. (line 1534)
3.730 -masks, understanding: See 5. (line 1534)
3.731 -memory, tuning usage of: See 6. (line 1624)
3.732 +local analysis window: See 4.4.1. (line 1369)
3.733 +local contrast enhancement: See 7.6.5.3. (line 2336)
3.734 +local contrast problem: See 7.6.5.1. (line 2206)
3.735 +local-contrast-based fusing: See 7.6.3. (line 2133)
3.736 +LZW compression: See 3.1. (line 432)
3.737 +mask template character, %: See 3.4. (line 1024)
3.738 +mask template character, B: See 3.4. (line 1073)
3.739 +mask template character, b: See 3.4. (line 1067)
3.740 +mask template character, D: See 3.4. (line 1064)
3.741 +mask template character, d: See 3.4. (line 1058)
3.742 +mask template character, E: See 3.4. (line 1092)
3.743 +mask template character, e: See 3.4. (line 1086)
3.744 +mask template character, F: See 3.4. (line 1082)
3.745 +mask template character, f: See 3.4. (line 1076)
3.746 +mask template character, i: See 3.4. (line 1027)
3.747 +mask template character, n: See 3.4. (line 1042)
3.748 +mask template character, P: See 3.4. (line 1055)
3.749 +mask template character, p: See 3.4. (line 1047)
3.750 +mask template characters, table of: See 3.4. (line 1023)
3.751 +mask, binary: See 5. (line 1687)
3.752 +mask, filename template: See 3.4. (line 996)
3.753 +mask, input files: See 5.1. (line 1699)
3.754 +mask, saving: See 3.4. (line 993)
3.755 +mask, weight: See 5. (line 1687)
3.756 +masks, understanding: See 5. (line 1687)
3.757 +memory, tuning usage of: See 6. (line 1777)
3.758 Mertens-Kautz-Van Reeth exposure fusion: See 1. (line 97)
3.759 -mode of operation (SDev, LoG, ...): See 4.4.4. (line 1461)
3.760 +mode of operation (SDev, LoG, ...): See 4.4.4. (line 1578)
3.761 multi-directory TIFF: See 1. (line 163)
3.762 multi-layer image: See 1. (line 163)
3.763 -natural sharp-unsharp transition: See 7.6.6. (line 2246)
3.764 -noise reduction: See 7.2. (line 1786)
3.765 +natural sharp-unsharp transition: See 7.6.6. (line 2463)
3.766 +noise reduction: See 7.2. (line 1939)
3.767 Octave: See Appendix A.
3.768 - (line 2337)
3.769 -OpenEXR, data format: See 3.2. (line 660)
3.770 -OpenEXR, half precision float: See 3.2. (line 664)
3.771 -option delimiters: See 3.5. (line 1055)
3.772 + (line 2554)
3.773 +OpenEXR, data format: See 3.2. (line 669)
3.774 +OpenEXR, half precision float: See 3.2. (line 673)
3.775 +option delimiters: See 3.5. (line 1100)
3.776 option index:
3.777 - See ``Option Index''. (line 2983)
3.778 -options, common: See 3.1. (line 399)
3.779 -options, expert: See 3.4. (line 767)
3.780 -options, extended: See 3.2. (line 571)
3.781 -options, fusion: See 3.3. (line 708)
3.782 -output file compression: See 3.1. (line 402)
3.783 -output filename, default: See 3.1. (line 474)
3.784 -output image, set size of: See 3.2. (line 674)
3.785 + See ``Option Index''. (line 3200)
3.786 +options, common: See 3.1. (line 408)
3.787 +options, expert: See 3.4. (line 776)
3.788 +options, extended: See 3.2. (line 580)
3.789 +options, fusion: See 3.3. (line 717)
3.790 +output file compression: See 3.1. (line 411)
3.791 +output filename, default: See 3.1. (line 483)
3.792 +output image, set size of: See 3.2. (line 683)
3.793 overview: See 1. (line 97)
3.794 -packbits compression: See 3.1. (line 427)
3.795 +packbits compression: See 3.1. (line 436)
3.796 parallax error: See 2. (line 250)
3.797 photometric alignment: See 2. (line 242)
3.798 -pixels, hot: See 7.6.6. (line 2231)
3.799 -polarization series: See 7.5. (line 1918)
3.800 -probability function: See 4.4.1.1. (line 1319)
3.801 +pixels, hot: See 7.6.6. (line 2448)
3.802 +polarization series: See 7.5. (line 2071)
3.803 +probability function: See 4.4.1.1. (line 1400)
3.804 problem reports: See Appendix A.
3.805 - (line 2340)
3.806 -problem, local contrast: See 7.6.5.1. (line 2053)
3.807 -profile, ICC: See 3.2. (line 588)
3.808 + (line 2557)
3.809 +problem, local contrast: See 7.6.5.1. (line 2206)
3.810 +profile, ICC: See 3.2. (line 597)
3.811 program index:
3.812 - See ``Program Index''. (line 2942)
3.813 -programs, helpful additional: See 8. (line 2253)
3.814 -pyramid levels: See 3.1. (line 442)
3.815 + See ``Program Index''. (line 3159)
3.816 +programs, helpful additional: See 8. (line 2470)
3.817 +pyramid levels: See 3.1. (line 451)
3.818 raw conversion: See 2. (line 227)
3.819 +response file, force recognition: See 3. (line 382)
3.820 response file, format: See 3. (line 332)
3.821 response file, grammar: See 3. (line 346)
3.822 response files: See 3. (line 284)
3.823 -saturation enhancement: See 7.5. (line 1918)
3.824 -scaling of parameters: See 4.4.4. (line 1461)
3.825 -sensor, use of clean: See 7.6.6. (line 2222)
3.826 -series, exposure: See 7.3. (line 1808)
3.827 -series, flash exposure: See 7.4. (line 1911)
3.828 -series, polarization: See 7.5. (line 1918)
3.829 -series, simple: See 7.2. (line 1786)
3.830 -simple series: See 7.2. (line 1786)
3.831 -single precision float, IEEE754: See 3.2. (line 640)
3.832 +saturation enhancement: See 7.5. (line 2071)
3.833 +scaling of parameters: See 4.4.4. (line 1578)
3.834 +sensor, use of clean: See 7.6.6. (line 2439)
3.835 +series, exposure: See 7.3. (line 1961)
3.836 +series, flash exposure: See 7.4. (line 2064)
3.837 +series, polarization: See 7.5. (line 2071)
3.838 +series, simple: See 7.2. (line 1939)
3.839 +simple series: See 7.2. (line 1939)
3.840 +single precision float, IEEE754: See 3.2. (line 649)
3.841 SourceForge <1>: See Appendix A.
3.842 - (line 2343)
3.843 + (line 2560)
3.844 SourceForge: See 1. (line 169)
3.845 SourceForge, tracker: See Appendix A.
3.846 - (line 2343)
3.847 -sRGB color space: See 3.2. (line 588)
3.848 -standard deviation: See 4.4.1.1. (line 1328)
3.849 -statistical moments: See 4.4.1.1. (line 1319)
3.850 -subtraction of dark frame: See 7.6.6. (line 2231)
3.851 -sweet spot aperture: See 7.6.1. (line 1955)
3.852 + (line 2560)
3.853 +sRGB color space: See 3.2. (line 597)
3.854 +standard deviation: See 4.4.1.1. (line 1409)
3.855 +statistical moments: See 4.4.1.1. (line 1400)
3.856 +subtraction of dark frame: See 7.6.6. (line 2448)
3.857 +sweet spot aperture: See 7.6.1. (line 2108)
3.858 TIFF, multi-directory: See 1. (line 163)
3.859 tiffcopy: See 1. (line 163)
3.860 tiffsplit: See 1. (line 163)
3.861 -tips, focus stacking experts: See 7.6.6. (line 2219)
3.862 -TMPDIR: See 6. (line 1638)
3.863 +tips, focus stacking experts: See 7.6.6. (line 2436)
3.864 +TMPDIR: See 6. (line 1791)
3.865 tracker, SourceForge: See Appendix A.
3.866 - (line 2343)
3.867 + (line 2560)
3.868 transformation, affine: See 2. (line 240)
3.869 -transition, natural sharp-unsharp: See 7.6.6. (line 2246)
3.870 -understanding masks: See 5. (line 1534)
3.871 -variance: See 4.4.1.1. (line 1325)
3.872 -weight mask: See 5. (line 1534)
3.873 -weight, entropy: See 3.3. (line 719)
3.874 -weight, exposure: See 3.3. (line 727)
3.875 -weight, local contrast: See 3.3. (line 712)
3.876 -weighted average: See 4.1.1. (line 1143)
3.877 -weighting functions: See 4. (line 1102)
3.878 -weighting, contrast using a blend of methods: See 4.4.3. (line 1419)
3.879 -weighting, contrast using laplacian-of-gaussian:See 4.4.2. (line 1357)
3.880 -weighting, contrast using standard deviation: See 4.4.1. (line 1288)
3.881 -weighting, exposure <1>: See 4.2. (line 1175)
3.882 +transition, natural sharp-unsharp: See 7.6.6. (line 2463)
3.883 +understanding masks: See 5. (line 1687)
3.884 +variance: See 4.4.1.1. (line 1406)
3.885 +weight mask: See 5. (line 1687)
3.886 +weight, entropy: See 3.3. (line 728)
3.887 +weight, exposure: See 3.3. (line 736)
3.888 +weight, local contrast: See 3.3. (line 721)
3.889 +weighted average: See 4.1.1. (line 1188)
3.890 +weighting functions: See 4. (line 1147)
3.891 +weighting, contrast using a blend of methods: See 4.4.3. (line 1536)
3.892 +weighting, contrast using laplacian-of-gaussian:See 4.4.2. (line 1438)
3.893 +weighting, contrast using standard deviation: See 4.4.1. (line 1369)
3.894 +weighting, exposure <1>: See 4.2. (line 1220)
3.895 weighting, exposure: See 1. (line 121)
3.896 -weighting, general concept of: See 4.1. (line 1109)
3.897 -weighting, local contrast <1>: See 4.4. (line 1264)
3.898 +weighting, general concept of: See 4.1. (line 1154)
3.899 +weighting, local contrast <1>: See 4.4. (line 1345)
3.900 weighting, local contrast: See 1. (line 130)
3.901 -weighting, local entropy <1>: See 4.5. (line 1475)
3.902 +weighting, local entropy <1>: See 4.5. (line 1592)
3.903 weighting, local entropy: See 1. (line 135)
3.904 -weighting, saturation <1>: See 4.3. (line 1229)
3.905 +weighting, saturation <1>: See 4.3. (line 1310)
3.906 weighting, saturation: See 1. (line 126)
3.907 -window, local-analysis: See 4.4.1. (line 1288)
3.908 +window, local-analysis: See 4.4.1. (line 1369)
3.909 workflow: See 2. (line 192)
3.910 workflow with Enblend: See 2. (line 203)
3.911 workflow with Enfuse: See 2. (line 203)
3.912 -wrap around: See 3.1. (line 521)
3.913 +wrap around: See 3.1. (line 530)
4.1 --- a/doc/filespec.texi Fri Nov 06 09:42:01 2009 +0100
4.2 +++ b/doc/filespec.texi Sat Nov 07 10:02:29 2009 +0100
4.3 @@ -132,7 +132,7 @@
4.4 For convenience whitespace at the beginning and at the end of each
4.5 line is ignored. However, this implies that response files cannot
4.6 represent filenames that start or end with whitespace, as there is no
4.7 -quoting syntax. Filenames with embedded whatespace cause no problems,
4.8 +quoting syntax. Filenames with embedded whitespace cause no problems,
4.9 though.
4.10
4.11 @item Only whole-line comments
4.12 @@ -150,9 +150,23 @@
4.13
4.14 @item Image filenames cannot start with @samp{@@}
4.15 An at-sign always introduces a response file, even if the extension
4.16 -would hinto towards an image.
4.17 +would hint towards an image.
4.18 @end table
4.19
4.20 +@cindex response file, force recognition
4.21 +If Enblend or Enfuse do not recognize a response file, they will issue
4.22 +a warning. To force a file being recognized as a response file add
4.23 +one of the following syntactic comments to the @emph{first} line of
4.24 +the file.
4.25 +
4.26 +@example
4.27 +@group
4.28 +# response-file: true
4.29 +# enblend-response-file: true
4.30 +# enfuse-response-file: true
4.31 +@end group
4.32 +@end example
4.33 +
4.34 @noindent
4.35 Here is an example of a valid response file.
4.36 @example
5.1 --- a/doc/versenblend.texi Fri Nov 06 09:42:01 2009 +0100
5.2 +++ b/doc/versenblend.texi Sat Nov 07 10:02:29 2009 +0100
5.3 @@ -1,4 +1,4 @@
5.4 -@set UPDATED 5 November 2009
5.5 +@set UPDATED 7 November 2009
5.6 @set UPDATED-MONTH November 2009
5.7 @set EDITION 4.0-dd32463fe9de
5.8 @set VERSION 4.0-dd32463fe9de
6.1 --- a/src/common.h Fri Nov 06 09:42:01 2009 +0100
6.2 +++ b/src/common.h Sat Nov 07 10:02:29 2009 +0100
6.3 @@ -24,9 +24,8 @@
6.4 #include <config.h>
6.5 #endif
6.6
6.7 -#include <errno.h>
6.8 -
6.9 #include <algorithm>
6.10 +#include <cerrno>
6.11 #include <fstream>
6.12 #include <iomanip>
6.13 #include <limits>
7.1 --- a/src/filespec.cc Fri Nov 06 09:42:01 2009 +0100
7.2 +++ b/src/filespec.cc Sat Nov 07 10:02:29 2009 +0100
7.3 @@ -21,6 +21,7 @@
7.4
7.5 #include <cerrno>
7.6 #include <fstream>
7.7 +#include <iomanip>
7.8 #include <iostream>
7.9 #include <list>
7.10 #include <map>
7.11 @@ -113,6 +114,78 @@
7.12 #endif
7.13
7.14
7.15 +// ANTICIPATED CHANGE: We already have the same function in
7.16 +// "common.h".
7.17 +static bool
7.18 +can_open_file(const std::string& aFilename)
7.19 +{
7.20 + errno = 0;
7.21 + std::ifstream file(aFilename.c_str());
7.22 + if (!file)
7.23 + {
7.24 + std::cerr << command <<
7.25 + ": failed to open \"" << aFilename << "\": " <<
7.26 + errorMessage(errno) << "\n";
7.27 + return false;
7.28 + }
7.29 + else
7.30 + {
7.31 + errno = 0;
7.32 + file.close();
7.33 + if (file.fail())
7.34 + {
7.35 + std::cerr << command <<
7.36 + ": info: problems when closing \"" << aFilename << "\": " <<
7.37 + errorMessage(errno) << "\n";
7.38 + }
7.39 + return true;
7.40 + }
7.41 +}
7.42 +
7.43 +
7.44 +// ANTICIPATED CHANGE: We already have the same function in
7.45 +// "common.h". There it is called toLower(). However, we cannot
7.46 +// include this file here. The solution is to factor out string
7.47 +// functions into their own module.
7.48 +std::string
7.49 +lower_case(const std::string& aString)
7.50 +{
7.51 + std::string result(aString);
7.52 + std::transform(aString.begin(), aString.end(), result.begin(), tolower);
7.53 + return result;
7.54 +}
7.55 +
7.56 +
7.57 +/** Convert a_string in a string that is printable. This is it only
7.58 + * contains printable characters. */
7.59 +std::string
7.60 +printable_string(const std::string& a_string)
7.61 +{
7.62 + std::string result;
7.63 +
7.64 + for (std::string::const_iterator c = a_string.begin();
7.65 + c != a_string.end();
7.66 + ++c)
7.67 + {
7.68 + if (isprint(*c))
7.69 + {
7.70 + result.push_back(*c);
7.71 + }
7.72 + else
7.73 + {
7.74 + std::ostringstream oss;
7.75 + oss <<
7.76 + "\\x" <<
7.77 + std::hex << std::setw(2) << std::setfill('0') <<
7.78 + (static_cast<int>(*c) & 0xff);
7.79 + result.append(oss.str());
7.80 + }
7.81 + }
7.82 +
7.83 + return result;
7.84 +}
7.85 +
7.86 +
7.87 /** Answer line will leading and trailing whitespace removed.
7.88 * Normalize blank lines and lines starting with a comment character
7.89 * to an empty string. Remove all whitespace between the
7.90 @@ -472,8 +545,10 @@
7.91 if (nesting_level > RESPONSE_FILE_MAX_NESTING_LEVEL)
7.92 {
7.93 std::cerr <<
7.94 - command << ": warning: excessive nesting of " << nesting_level << " levels of response files;\n" <<
7.95 - command << ": warning: possible infinite recursion in \"" << filename << "\"\n";
7.96 + command << ": warning: excessive nesting of " << nesting_level <<
7.97 + " levels of response files;\n" <<
7.98 + command << ": warning: possible infinite recursion in \"" <<
7.99 + printable_string(filename) << "\"\n";
7.100 unroll_trace(trace);
7.101 return;
7.102 }
7.103 @@ -503,7 +578,8 @@
7.104 if (t->first == response_filepath)
7.105 {
7.106 std::cerr << command <<
7.107 - ": warning: response file \"" << response_filepath << "\" recursively\n";
7.108 + ": warning: response file \"" << printable_string(response_filepath) <<
7.109 + "\" recursively\n";
7.110 unroll_trace(trace);
7.111 return;
7.112 }
7.113 @@ -519,125 +595,131 @@
7.114 if (Verbose >= VERBOSE_RESPONSE_FILES)
7.115 {
7.116 std::cerr << command <<
7.117 - ": info: consulting response file \"" << response_filepath << "\"\n";
7.118 + ": info: consulting response file \"" <<
7.119 + printable_string(response_filepath) << "\"\n";
7.120 + }
7.121 +
7.122 + if (!can_open_file(response_filepath))
7.123 + {
7.124 + std::cerr << command <<
7.125 + ": failed to open response file \"" <<
7.126 + printable_string(response_filepath) << "\": " <<
7.127 + errorMessage(errno) << "\n";
7.128 + unroll_trace(trace);
7.129 + exit(1);
7.130 + }
7.131 +
7.132 + if (!maybe_response_file(response_filepath))
7.133 + {
7.134 + std::cerr << command <<
7.135 + ": warning: malformed response file \"" <<
7.136 + printable_string(response_filepath) << "\"\n";
7.137 + unroll_trace(trace);
7.138 + return;
7.139 }
7.140
7.141 errno = 0;
7.142 std::ifstream response_file(response_filepath.c_str());
7.143 - if (response_file)
7.144 + Globbing glob;
7.145 + unsigned line_number = 0U;
7.146 +
7.147 + while (true)
7.148 {
7.149 - Globbing glob;
7.150 - unsigned line_number = 0U;
7.151 + std::string buffer;
7.152
7.153 - while (true)
7.154 + errno = 0;
7.155 + getline(response_file, buffer);
7.156 + if (!response_file.good())
7.157 {
7.158 - std::string buffer;
7.159 + if (!buffer.empty())
7.160 + {
7.161 + std::cerr <<
7.162 + command << ": warning: ignoring last line of response file \"" <<
7.163 + printable_string(response_filepath) << "\" line " << line_number + 1U << ",\n" <<
7.164 + command << ": warning: because it does not end with a newline\n";
7.165 + unroll_trace(trace);
7.166 + }
7.167 + break;
7.168 + }
7.169 + ++line_number;
7.170
7.171 - errno = 0;
7.172 - getline(response_file, buffer);
7.173 - if (!response_file.good())
7.174 + const key_value_pair comment = get_syntactic_comment(buffer);
7.175 + if ((comment.first == "glob" || comment.first == "globbing") &&
7.176 + !comment.second.empty())
7.177 + // We silently ignore all other keys or empty
7.178 + // values with the right key.
7.179 + {
7.180 + if (!glob.set_algorithm(lower_case(comment.second)))
7.181 {
7.182 - if (!buffer.empty())
7.183 + std::cerr <<
7.184 + command <<
7.185 + ": warning: requested unknown globbing algorithm \"" <<
7.186 + comment.second <<
7.187 + "\" in response file \"" << printable_string(response_filepath) <<
7.188 + "\" line " << line_number << "\n" <<
7.189 + command <<
7.190 + ": warning: will stick with algorithm \"" <<
7.191 + glob.get_algorithm() << "\"\n";
7.192 + unroll_trace(trace);
7.193 + }
7.194 + }
7.195 +
7.196 + const std::string line(normalize_response_file_line(buffer));
7.197 + if (line.empty())
7.198 + {
7.199 + continue;
7.200 + }
7.201 +
7.202 + const std::string response_directory = extractDirname(response_filepath);
7.203 +#ifdef DEBUG_FILESPEC
7.204 + std::cout << "+ unfold_filename_iter: response_directory = " << response_directory << "\n";
7.205 +#endif
7.206 + TraceableFileNameList partial_result;
7.207 + trace.push_front(std::make_pair(response_filepath, line_number));
7.208 + unfold_filename_iter(partial_result,
7.209 + nesting_level + 1U, response_directory, trace,
7.210 + line);
7.211 +
7.212 + for (TraceableFileNameList::const_iterator p = partial_result.begin();
7.213 + p != partial_result.end();
7.214 + ++p)
7.215 + {
7.216 + const FileNameList expanded_partial_result = glob.expand(p->first, trace);
7.217 + for (FileNameList::const_iterator q = expanded_partial_result.begin();
7.218 + q != expanded_partial_result.end();
7.219 + ++q)
7.220 + {
7.221 + if (enblend::isRelativePath(*q))
7.222 {
7.223 - std::cerr <<
7.224 - command << ": warning: ignoring last line of response file \"" <<
7.225 - response_filepath << "\" line " << line_number + 1U << ",\n" <<
7.226 - command << ": warning: because it does not end with a newline\n";
7.227 - unroll_trace(trace);
7.228 + const std::string path =
7.229 + enblend::canonicalizePath(concatPath(response_directory, *q), false);
7.230 +#ifdef DEBUG_FILESPEC
7.231 + std::cout <<
7.232 + "+ unfold_filename_iter: relative path\n" <<
7.233 + "+ unfold_filename_iter: q = " << *q << "\n" <<
7.234 + "+ unfold_filename_iter: path = <" << path << ">\n";
7.235 +#endif
7.236 + result.insert(result.end(), std::make_pair(path, trace));
7.237 }
7.238 - break;
7.239 - }
7.240 - ++line_number;
7.241 -
7.242 - if (line_number == 1U)
7.243 - {
7.244 - const key_value_pair comment = get_syntactic_comment(buffer);
7.245 - if ((comment.first == "glob" || comment.first == "globbing") &&
7.246 - !comment.second.empty())
7.247 + else
7.248 {
7.249 - if (!glob.set_algorithm(comment.second))
7.250 - {
7.251 - std::cerr <<
7.252 - command <<
7.253 - ": warning: requested unknown globbing algorithm \"" <<
7.254 - comment.second <<
7.255 - "\" in response file \"" << response_filepath << "\" line " <<
7.256 - line_number << "\n" <<
7.257 - command <<
7.258 - ": warning: will stick with algorithm \"" <<
7.259 - glob.get_algorithm() << "\"\n";
7.260 - unroll_trace(trace);
7.261 - }
7.262 - }
7.263 - // We silently ignore all other keys or empty
7.264 - // values with the right key.
7.265 - }
7.266 -
7.267 - const std::string line(normalize_response_file_line(buffer));
7.268 - if (line.empty())
7.269 - {
7.270 - continue;
7.271 - }
7.272 -
7.273 - const std::string response_directory = extractDirname(response_filepath);
7.274 #ifdef DEBUG_FILESPEC
7.275 - std::cout << "+ unfold_filename_iter: response_directory = " << response_directory << "\n";
7.276 + std::cout << "+ unfold_filename_iter: absolute path\n";
7.277 #endif
7.278 - TraceableFileNameList partial_result;
7.279 - trace.push_front(std::make_pair(response_filepath, line_number));
7.280 - unfold_filename_iter(partial_result,
7.281 - nesting_level + 1U, response_directory, trace,
7.282 - line);
7.283 -
7.284 - for (TraceableFileNameList::const_iterator p = partial_result.begin();
7.285 - p != partial_result.end();
7.286 - ++p)
7.287 - {
7.288 - const FileNameList expanded_partial_result = glob.expand(p->first, trace);
7.289 - for (FileNameList::const_iterator q = expanded_partial_result.begin();
7.290 - q != expanded_partial_result.end();
7.291 - ++q)
7.292 - {
7.293 - if (enblend::isRelativePath(*q))
7.294 - {
7.295 - const std::string path =
7.296 - enblend::canonicalizePath(concatPath(response_directory, *q), false);
7.297 -#ifdef DEBUG_FILESPEC
7.298 - std::cout <<
7.299 - "+ unfold_filename_iter: relative path\n" <<
7.300 - "+ unfold_filename_iter: q = " << *q << "\n" <<
7.301 - "+ unfold_filename_iter: path = <" << path << ">\n";
7.302 -#endif
7.303 - result.insert(result.end(), std::make_pair(path, trace));
7.304 - }
7.305 - else
7.306 - {
7.307 -#ifdef DEBUG_FILESPEC
7.308 - std::cout << "+ unfold_filename_iter: absolute path\n";
7.309 -#endif
7.310 - result.insert(result.end(), std::make_pair(*q, trace));
7.311 - }
7.312 + result.insert(result.end(), std::make_pair(*q, trace));
7.313 }
7.314 }
7.315 + }
7.316
7.317 - trace.pop_front();
7.318 - }
7.319 - if (!response_file.eof())
7.320 - {
7.321 - std::cerr << command <<
7.322 - ": warning: filesystem signals problems in response file \"" <<
7.323 - response_filepath << "\" line " << line_number << ": " <<
7.324 - errorMessage(errno) << "\n";
7.325 - unroll_trace(trace);
7.326 - }
7.327 + trace.pop_front();
7.328 }
7.329 - else
7.330 + if (!response_file.eof())
7.331 {
7.332 std::cerr << command <<
7.333 - ": failed to open response file \"" << response_filepath << "\": " <<
7.334 + ": warning: filesystem signals problems in response file \"" <<
7.335 + printable_string(response_filepath) << "\" line " << line_number << ": " <<
7.336 errorMessage(errno) << "\n";
7.337 unroll_trace(trace);
7.338 - exit(1);
7.339 }
7.340 }
7.341 else
7.342 @@ -681,19 +763,6 @@
7.343 }
7.344
7.345
7.346 -// ANTICIPATED CHANGE: We already have the same function in
7.347 -// "common.h". There it is called toLower(). However, we cannot
7.348 -// include this file here. The solution is to factor out string
7.349 -// functions into their own module.
7.350 -std::string
7.351 -lower_case(const std::string& aString)
7.352 -{
7.353 - std::string result(aString);
7.354 - std::transform(aString.begin(), aString.end(), result.begin(), tolower);
7.355 - return result;
7.356 -}
7.357 -
7.358 -
7.359 bool
7.360 is_known_extension_to_vigra(const std::string& filename)
7.361 {
7.362 @@ -725,20 +794,38 @@
7.363 }
7.364 ++line_number;
7.365
7.366 + if (line_number == 1U)
7.367 + {
7.368 + const key_value_pair comment = get_syntactic_comment(buffer);
7.369 + if ((comment.first == "response-file" ||
7.370 + comment.first == "enblend-response-file" ||
7.371 + comment.first == "enfuse-response-file") &&
7.372 + lower_case(comment.second) == "true")
7.373 + {
7.374 + return true;
7.375 + }
7.376 + }
7.377 +
7.378 const std::string line(normalize_response_file_line(buffer));
7.379 if (line.empty())
7.380 {
7.381 + ++score;
7.382 continue;
7.383 }
7.384
7.385 if (line[0] == RESPONSE_FILE_PREFIX_CHAR ||
7.386 is_known_extension_to_vigra(line))
7.387 {
7.388 - ++score;
7.389 + score += 2U;
7.390 }
7.391 }
7.392
7.393 - return line_number >= 1U && score * 8U >= line_number * 7U;
7.394 +#ifdef DEBUG_FILESPEC
7.395 + std::cout <<
7.396 + "+ maybe_response_file: score = " << score <<
7.397 + ", lines = " << line_number << "\n";
7.398 +#endif
7.399 + return score >= line_number;
7.400 }
7.401 else
7.402 {