We produce color images from digitized Prokudin-Gorskii glass plate images using image processing techniques, ensuring minimal visual artifacts.
We split the LoC scans in thirds and remove borders based on the blue channel.
We downsample the channels by succesive factors of two then, starting at the smallest scale, perform a partial normalized correlation within a certain window, then use offset from the smaller scale as the starting point for the next level.
The multiscale method may have issues when the window sizes are chosen suboptimally. To search a far larger window, the whole image, we align based on the maximum normalized cross-correlation of the image gradient norms of the red and green channels w.r.t. the blue channel using the FFT method for runtime efficiency. We then use the maximum translation to remove areas where no overlap occurs.
Since some surfaces may not have similar profiles between colors channels, we use the image gradient norm of each channel for the cross correlation.
For contrast enhacement, we convert to YUV space, linearize the Y channel, then convert back to RGB.
We use a simple color balancing technique from Adobe Photoshop's "auto levels" command: we scale the histograms of each of the R, G, and B channels such that they span the complete [0, 255] scale.
Red tv: [ 2 -3] Green tv: [2 3]
Red tv: [ -1 -14] Green tv: [ 0 -7]
Red tv: [ 3 -6] Green tv: [ 3 -3]
Red tv: [ 0 -8] Green tv: [ 1 -3]
Red tv: [ 3 -12] Green tv: [ 2 -5]
Red tv: [ -14 -107] Green tv: [ -4 -52]
Red tv: [ 40 -106] Green tv: [ 23 -50]
Red tv: [ 16 -178] Green tv: [ 10 -88]
Red tv: [ 34 -108] Green tv: [ 22 -52]
Red tv: [ 28 -85] Green tv: [ -1 -40]
Red tv: [ 23 -90] Green tv: [ 17 -38]
Red tv: [ 22 -138] Green tv: [ 12 -66]
Red tv: [ 38 -175] Green tv: [ 30 -81]
Red tv: [ 14 -123] Green tv: [ 17 -59]
Red tv: [ 10 -120] Green tv: [ 7 -57]
Red tv: [ 30 -116] Green tv: [ 18 -55]
Red tv: [ 8 -111] Green tv: [ 12 -54]