bootstrap: Remove code to prune documentation
[Ale.git] / doc / localhost / ALE / download / ale-0.6.0-user / rendering / index.html
blob03aa7fb8d1ce9c751463994282a2e07f5bc3e122
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <title>ALE User Manual: Rendering</title>
6 <style type="text/css">
7 TABLE.ba { max-width: 678; text-align: center; padding-bottom: 15; padding-top: 5}
8 TABLE.inline { padding-right: 300; clear: left}
9 TD.text_table {padding-left: 2; padding-right: 2; border-width: 1}
10 H2 {clear: left}
11 P {max-width: none; padding-right: 300; clear: left}
12 BLOCKQUOTE {padding-right: 400 }
13 LI {max-width: 640; clear: left}
14 P.footer {max-width: none; width: auto; padding-left: 0}
15 P.header {max-width: none; width: auto; padding-left: 0}
16 HR.main {max-width: 640; clear: left; padding-left: 0; margin-left: 0}
17 HR.footer {clear: both}
18 </style>
19 </head><body>
23 <table align=right valign=top width=160>
24 <td valign=top height=600 width=160>
25 <a href="http://auricle.dyndns.org/ALE/">
26 <big>ALE</big>
27 <br>
28 Image Processing Software
29 <br>
30 <br>
31 <small>Deblurring, Anti-aliasing, and Superresolution.</small></a>
32 <br><br>
33 <big>
34 Local Operation
35 </big>
36 <hr>
37 localhost<br>
38 2684415918<br>
39 </table>
43 <p><b>[ <a href="../">Up</a> ]</b></p>
44 <h1>ALE Rendering</h1>
46 Rendering determines how an output image is constructed from a series of
47 aligned input frames. The incremental renderers, merging and drizzling, update
48 the output image after reading each new frame from the series, whereas
49 non-incremental renderers wait until the last frame has been loaded before
50 producing output. More than one renderer can be involved in producing the
51 final output. Available rendering options are outlined below.
53 <h2>Merging</h2>
55 Merging, the default incremental renderer, works most effectively on images
56 that have no large changes in scale (e.g. camera zooming). Since it uses
57 bilinear interpolation, output images are approximately convolved with the
58 triangle, or Bartlett, filter, and may appear to have reduced contrast and
59 resolution when compared with the output of other renderers.
61 <h2>Drizzling</h2>
63 The drizzling renderer is an incremental renderer that can usually produce
64 better images than merging, but it works most effectively with devices having
65 very little blur and optical distortion. Devices sampling very small angles of
66 the scene at each pixel are ideal; hence, if very fine staircase aliasing is
67 visible in the input frames, drizzling should work very well. (For creation of
68 higher resolution images with drizzling, use also the --scale option described
69 below.)
71 <pre>
72 --drizzle-diam=x Drizzle with input pixel diameter x (where x &gt; 0)
73 --drizzle-only If drizzling, output black for pixels with no drizzle data.
74 </pre>
76 <p>For more information about drizzling, see the paper by Richard Hook and
77 Andrew Fruchter, "Variable-Pixel Linear Combination", or the following URL:
79 <p><a href="http://www.cv.nrao.edu/adass/adassVI/hookr.html">http://www.cv.nrao.edu/adass/adassVI/hookr.html</a>
81 <h2>Point-spread Function (PSF)</h2>
83 <p>Non-incremental renderers use a point-spread function to model the optical
84 and electronic properties of the capture device used. The PSF can be specified
85 in terms of a linear and non-linear component. The non-linear component is
86 disabled by default.
88 <h3>Determining the PSF</h3>
90 <p>The point-spread function can be approximated through trial-and-error or
91 based on known scenes. ALE includes a script that numerically approximates the
92 point-spread function based on images captured from known scenes. This script
93 can be found in the source distribution
94 (<code>d2/render/psf/ale-psf-calibrate</code>).
96 <h3>Device Specification</h3>
98 If a device is known to ALE, then its PSF can be implicitly set with the device
99 option.
101 <pre>
102 --device &lt;d> Set the capture device to &lt;d>.
103 </pre>
105 Available devices are as follows:
107 <pre>
108 xvp610_320x240 IBM PC Camera Pro (XVP610) in 320x240 mode.
109 </pre>
111 <h3>PSF specification</h3>
113 <p>The PSF can also be explicitly specified by using one or both of the psf
114 options. These options have precedence over the device option.
116 <pre>
117 --lpsf &lt;p> Set linear colorspace point-spread function to &lt;p>
118 --nlpsf &lt;p> Set non-linear colorspace point-spread function to &lt;p>
119 </pre>
121 Available explicit point-spread functions are as follows:
123 <pre>
124 box=&lt;d> Set the PSF to a box filter with diameter &lt;d>.
125 stdin Specify a custom filter at runtime.
126 &lt;p>+&lt;p> Summation of two functions
127 </pre>
129 <h2>Unsharp Mask (USM) Renderer</h2>
131 <p>This non-incremental renderer uses an unsharp mask to compensate for
132 blur introduced by the image capture device. It is fairly inexpensive
133 computationally, but it may not be effective in all cases.
135 <pre>
136 --usm &lt;m> Apply an unsharp mask with multiplier &lt;m>.
137 </pre>
139 <h2>Irani-Peleg iterative solver</h2>
141 <p>This non-incremental renderer is very general, and attempts to reconstruct the
142 original scene based on the captured frames and the PSF. Unlike the USM
143 renderer, it can compensate for blur introduced by the incremental
144 renderers, and it may be more effective than the USM renderer in compensating
145 for blur introduced by the image capture device.
147 <p>Note that this method can take a long time to produce output. If
148 incremental output is enabled (see below), output is written after each
149 iteration is complete. Using more iterations will generally improve output, up
150 to the point of convergence, when additional iterations have no effect. A dot
151 is displayed to indicate the completion of each iteration.
153 <pre>
154 --ips &lt;i> Run &lt;i> iterations.
155 </pre>
157 <p>For more information on the iterative backprojection technique of Michal Irani and
158 Shmuel Peleg, see their paper, "Improving Resolution by Image Registration", at
160 <p><a href="ftp://ftp.wisdom.weizmann.ac.il/pub/irani/PAPERS/SR_CVGIP91.pdf">ftp://ftp.wisdom.weizmann.ac.il/pub/irani/PAPERS/SR_CVGIP91.pdf</a>
162 <h2>Exposure Registration</h2>
164 <p>By default, ALE adjusts an exposure model to minimize differences in tone
165 between frames. The option <code>--exp-noregister</code> indicates that
166 exposure should be assumed uniform across all frames. In this case, no
167 adjustment is performed.</p>
169 <pre>
170 --exp-register Register exposure between frames. [default]
171 --exp-noregister Assume uniform exposure across all frames.
172 </pre>
174 For more information about analyzing and processing images having differing
175 exposures, see Steve Mann's comparametric paper, at
177 <p><a href="http://wearcam.org/comparam.htm">http://wearcam.org/comparam.htm</a>
179 <h2>Certainty-weighted Rendering</h2>
181 <p>The exposure model in ALE includes an associated certainty function, which
182 quantifies the reliability of sensor measurements. By default, this function
183 is raised to the zeroth power to obtain uniform certainty for all measurements.
184 To specify a different certainty exponent, the option <code>--cx</code> can be
185 used.
187 <pre>
188 --cx &lt;x> Render with certainty exponent &lt;x>
189 --no-cx Render with uniform certainty. [default]
190 </pre>
192 Note that ALE uses a one-sided certainty function, biased by
193 backprojection value, in Irani-Peleg rendering. In some cases, this approach
194 seems to offer better results than the unbiased function used in drizzling and
195 merging. For more information on the certainty weighting approach used by ALE,
196 see the ALE source code.
198 <p>For more information on Steve Mann's original approach to certainty-weighted
199 rendering, see his comparametric paper, at
201 <p><a href="http://wearcam.org/comparam.htm">http://wearcam.org/comparam.htm</a>
203 <h2>Scale factor</h2>
205 Rendering with a larger scale factor causes internal data structures to store
206 more information, resulting in image output of the specified larger scale.
207 Larger scales can improve alignment precision and output image quality, but can
208 also increase alignment and rendering times.
210 <pre>
211 --scale=x Scale images by the factor x (where x is at least 1.0)
212 </pre>
214 <h2>Image extents</h2>
216 The --extend option records pixel data that falls outside of the region of the
217 first frame in the sequence. This can be useful for providing additional
218 alignment constraints or creating panoramic image mosaics. (See also the
219 description of the --follow option in the <a href="../alignment">alignment</a>
220 section.)
222 <pre>
223 --extend Increase image extents to accommodate all pixel data.
224 --no-extend Don't increase extents; crop to original frame. [default]
225 </pre>
227 <h2>Incremental output</h2>
229 By default, the output file is written every time a renderer completes an
230 update cycle. In order to suppress output until the final image is rendered,
231 specify the --no-inc option.
233 <pre>
234 --inc Produce incremental output. [default]
235 --no-inc Don't produce incremental output.
236 </pre>
238 <h2>Pixel replacement</h2>
240 <p>When using the merging or drizzling renderer, --replace indicates that each
241 new frame should replace the corresponding region of the rendering, instead of
242 being averaged with data from previous frames. This option was originally
243 suggested by Jeff Treece for use in stabilization of video streams. His
244 approach to stabilization is outlined below.
246 <h3>Video Stabilization</h3>
248 <p>If the files
250 <pre>0.ppm, 1.ppm, ..., 9.ppm</pre>
252 represent frames from an unstabilized video stream, then the following sequence
253 of commands may result in a stabilized sequence:
255 <pre>
256 ale --replace 0.ppm 1.ppm 1.stable.ppm
257 ale --replace 1.stable.ppm 2.ppm 2.stable.ppm
258 ale --replace 2.stable.ppm 3.ppm 3.stable.ppm
262 ale --replace 8.stable.ppm 9.ppm 9.stable.ppm
263 </pre>
265 <p>The resulting stabilized sequence would be:
267 <pre>0.ppm, 1.stable.ppm, 2.stable.ppm, ..., 9.stable.ppm</pre>
269 <h3>Option Syntax</h3>
271 <pre>
272 --replace Replace overlapping areas when merging and drizzling.
273 --no-replace Do not replace. [default]
274 </pre>
277 <br>
278 <hr>
279 <i>Copyright 2003, 2004 <a href="mailto:dhilvert@auricle.dyndns.org">David Hilvert</a></i>
280 <p>Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.
283 </body>
284 </html>