               Image Reassembly Notes
  Orion Sky Lawlor, olawlor@acm.org, 10/14/2001

Scanned images of USGS "Denali National Park and Preserve"
Landsat MSS image.  Scanned with Layla's Microtek SlimScan C6
at 300 dpi and reduced to 150 dpi in Photoshop.

The claim is the projection is UTM zone 5, 1:250,000 scale.
Hence 150 dots per inch mean 150 dots per 250,000 inches,
or one dot per 42 meters. 

I really screwed up 3_2.jpg-- I think the scanner was sitting on
the edge of the book.  Might want to throw this one out.

Color registration looks quite good-- a small amount of 
brightness variation; zero color cast.  Geometric distortion
(other than translation and rotation) is virtually nil--
some small displacements in y less than a pixel is all.
Presumably a little bit of belt slippage/vibration.
Correlations for reassembly should be bright and clear.
Also, no scaling errors are expected.


COARSE REASSEMBLY:
The small index image is 19cm across.  The complete
image is 94 cm across.  Thus the small image is reduced
approximately 5 fold (200m pixel spacing).
There is a bit of a color cast to the index image, which
had to be corrected before reassembly.
Matching (reduced) full-size images to index:

Full size images are 4.95 times larger than index.

My FFTs run on power-of-two image sizes.  Hence if I shrink
the index image by 82.5%, the index fits comfortably in 1024
(971x977, to be exact).  This also makes the full size
images exactly 6 times larger, which simplifies their resampling.

The correlations mostly look very good-- a few total failures in the
boggy regions of t3_1, t3_2, and t4_2.  All of these tend to be
sucked into the boggy regions of the headwaters of the Susitna.
Hence I've masked off these regions and made a separate index_nw.ppm.
(Aught to figure out why these correlations were not working).

Filled a few holes with n0_1, n0_3, n2_0, n2_7, n5_0 and n5_5.

Poor-offset patches include:
t5_0 (upleft too high by 20 pix)  Re-ran at 100x10
t0_3 (too low by 16 pix) Grayed out border, which was sucking up
the correlations, and re-ran at 140x15.
t2_0 (left side too left by 40 pix) Grey border and finer
sampling does the trick.

Result is within a half-dozen pixels everywhere.  Final 
adjustments are all that remain.  Examining composite reveals
index image is slightly larger on all sides than source images--
probably why the edge correlations didn't work out well.

A bit of feathering helps smooth out the (minor) brightness 
variations present. 5% of the image size on all sides works well;
2% is not enough.


FINE REASSEMBLY:
I believe I have enough memory to just read all the images 
at once-- each image is approx 1.2k x 1.5k (1.8m pix), or 7.2MB
at 4 bytes/pixel.  Hence 34 images will take 245 MB, which is doable
with my current 300MB swap partition.  I better not allocate
too many more buffers, tho'.

I don't expect more than 10 pixels of misregistration.  Hence
a 16-pixel border should be enough.  This means the sensible combos 
are:
48-pixel big; 16-pixel little
64-pixel big; 32-pixel little
128-pixel big; 96-pixel little

The basic flow for image reassembly is:
loop over refinements
   loop over images
      build composite using all *other* images
      match and re-fit this image to the new composite

This converged to within a tenth of a pixel in under 10 iterations--
the fine details come together seamlessly.  There were a few holes,
which required new scans to fill (n?_?.jpg).  Final image looks
good.  

Still need to remove the 10km grid lines somehow.
