.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "FULLA ""1""" .TH FULLA "1" "2020-12-29" """Version: 2020.0.0""" "HUGIN" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" fulla \- Correct lens distortion, vignetting and chromatic aberration .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBfulla\fR [options] \fIinputfile(s)\fR .SH "DESCRIPTION" .IX Header "DESCRIPTION" Apply radial or flat-field vignetting correction as well as geometrical radial distortion and transversal chromatic aberration correction. .PP fulla can be used to batch correct a large number of files. Radial distortion coefficients can be read from a lens database. .PP Vignetting correction is done the same way as described in the nona script file documentation, or from lens database. Vignetting correction can be done based on a flat-field or a radial scaling. .PP Vignetting correction by flat-field division: I = I / c, c = flat-field / mean(flat\-field) .PP Radial vignetting correction: I = I / c, c = a + b*r^2 + c*r^4 + d*r^6 .PP The radial distortion correction is identical to the one implemented by PanoTools: .PP r_new = a*r^4 + b*r^3 + c*r^2 + d*r [1] .PP Since transversal chromatic aberrations (\s-1TCA\s0) leads to differently scaled objects in the red, green and blue channel, it can be corrected by scaling the red and blue channel so that they match the green channel. Most applications, like Photoshop or Picture Window Pro offer \s-1TCA\s0 correction by linear scaling. This is equal to varying the d parameter in equation [1]. .PP See http://hugin.sf.net/tutorials/tca for a method to determine these parameters. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-\-green=db|a:b:c:d\fR" 4 .IX Item "--green=db|a:b:c:d" Correct radial distortion coefficient for all channels, (a, b, c, d) Specify 'db' for database lookup or the 4 coefficients a:b:c:d .IP "\fB\-\-blue=db|a:b:c:d\fR" 4 .IX Item "--blue=db|a:b:c:d" Correct radial distortion coefficients for blue channel, (a, b, c, d). This is applied on top of the \fB\-\-green\fR distortion coefficients, use for \s-1TCA\s0 corr Specify 'db' for database lookup or the 4 coefficients a:b:c:d .IP "\fB\-\-red=db|a:b:c:d\fR" 4 .IX Item "--red=db|a:b:c:d" Correct radial distortion coefficients for red channel, (a, b, c, d). This is applied on top of the \fB\-\-green\fR distortion coefficients, use for \s-1TCA\s0 corr Specify 'db' for database lookup or the 4 coefficients a:b:c:d .IP "\fB\-\-camera\-maker=Maker\fR" 4 .IX Item "--camera-maker=Maker" Camera manufacturer, for database query .IP "\fB\-\-camera\-model=Cam\fR" 4 .IX Item "--camera-model=Cam" Camera name, for database query .IP "\fB\-\-lensname=Lens\fR" 4 .IX Item "--lensname=Lens" Lens name, for database query .RS 4 .Sp .RS 4 Specify \-\-camera\-maker and \-\-camera\-model for fixed lens cameras or \-\-lensname for interchangeable lenses. .RE .RE .RS 4 .RE .IP "\fB\-\-focallength=50\fR" 4 .IX Item "--focallength=50" Specify focal length in mm, for database query .IP "\fB\-\-aperature=3.5\fR" 4 .IX Item "--aperature=3.5" Specify aperture for vignetting data database query .IP "\fB\-\-dont\-rescale\fR" 4 .IX Item "--dont-rescale" Do not rescale the image to avoid black borders. .IP "\fB\-\-flatfield=filename\fR" 4 .IX Item "--flatfield=filename" Vignetting correction by flatfield division I = I / c, c = flatfield / mean(flatfield) .IP "\fB\-\-vignetting=db|a:b:c:d\fR" 4 .IX Item "--vignetting=db|a:b:c:d" Correct vignetting (by division) Specify db for database look up or the the 4 coefficients a:b:c:d I = I / ( a + b*r^2 + c*r^4 + d*r^6) .IP "\fB\-\-linear\fR" 4 .IX Item "--linear" Do vignetting correction in linear color space .IP "\fB\-\-gamma=value\fR" 4 .IX Item "--gamma=value" Gamma of input data. Used for gamma correction before and after flatfield correction .IP "\fBthreads=n\fR" 4 .IX Item "threads=n" Number of threads that should be used .IP "\fB\-h|\-\-help\fR" 4 .IX Item "-h|--help" Display help .IP "\fB\-\-output=name\fR" 4 .IX Item "--output=name" Set output filename. If more than one image is given, the name will be used as suffix. (default suffix: _corr) .IP "\fB\-\-compression=value\fR" 4 .IX Item "--compression=value" Compression of the output files. For jpeg output: 0\-100 For tiff output: \s-1PACKBITS, DEFLATE, LZW\s0 .IP "\fB\-\-offset=X:Y\fR" 4 .IX Item "--offset=X:Y" Horizontal and vertical shift .IP "\fB\-\-verbose\fR" 4 .IX Item "--verbose" Verbose .SH "AUTHORS" .IX Header "AUTHORS" Written by Pablo d'Angelo. Also contains contributions from Douglas Wilkins, Ippei Ukai, Ed Halley, Bruno Postle, Gerry Patterson, Brent Townshend and Thomas Modes.