-
Notifications
You must be signed in to change notification settings - Fork 0
Rendering algorithms: Channel mixing
When only RGB scan of a color transparency is available, it is possible to estimate the original black and white transparency by mixing RGB channels to grayscale with a certain weights.
In theory it is possible to recover the infrared channel of the scan using the RGB data.
During digitization light passes from the light source through the filters and the emulsion (which is assumed to be close to neutral density filter) and color filters used on the top of the scanner CCD. Knowing RGB values of the scanner's response to the red, green and blue filters of the color screen it is possible possible to produce 3 equations which makes it possible to compute from scanned RGB value the density of the emulsion. mix_weights
.red, mix_weights
.green and mix_weights
.blue are solution to the equations. Value is further compensated by mix_dark
, which should ideally be (0,0,0) but it is practical to offset it in some situation (such as when the value is computed using the actual infrared channel).
The simulated infrared channel is computed as:
ir=(r-mix_dark
.red)mix_weights
.red+(g-mix_dark
.green)mix_weights
.green+(b-mix_dark
.blue)mix_weights
.blue.
Here r, g and b are linearized RGB values of the pixel inspected.
Meaningful of mix_dark
are values are in range (-1,1). mix_red
, mix_green
and mix_blue
can be both positive and negative.