A Blink script that will combine the results of two 3D LUTs generated by LUTRecover to produce a better result.
LUTRecoverMerge
Updated: 2 September 2015
Author: hpduiker
Compatible Nuke versions: 8.0 or later
Compatibility:
LUTRecoverMerge will combine the results of two 3D LUTs generated by LUTRecover to produce a better result.
If you have multiple sets of before and after frames that cover different parts of the cover range, you can recover LUTs from each pair using LUTRecover and then merge those results using LUTRecoverMerge.
Caveats
The recover1 and recover2 images should have matching resolution.
This node will execute very quickly, so don't worry about stringing lots of them together.
This node can be passed directly to a GenerateLUT node if you want to then write your LUT to disk.
Source
The Blink source code is available on Nukepedia and on github here:
https://github.com/hpd/general/blob/master/blink/LUTRecoverMerge.blink
An example Nuke script can be downloaded from github here:
https://raw.githubusercontent.com/hpd/general/master/blink/scripts/LUTRecoverMerge.nk
Example Images (from LUTRecover)
Here we have the 'before' and 'after' images. We use a CMSTestPattern image for the 'before' to make sure that the full range of input values is covered for the example.
The first CMSTestPattern image below that is used to determine the resolution of the recovered LUT. This example uses resolution 33. The second image is the recovered LUT. This can be fed into a GenerateLUT node to write the LUT to disk or a LUTApply BlinkScript node to compare the recovered LUT to the graded 'after' image, which is the third image below.
Notice that the third image above doesn't match exactly the second image from the first row of images. If we add more pairs of images into the solve, we can produce a better result. The three images below show a successively more accurate approximation of the original LUT.
The MIT License (MIT)
Copyright (c) 2014-2015 Haarm-Pieter Duiker
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the 'Software'), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.