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.