Skip to content

Reimplement Robertson's algorithm in numpy #2

@Entropy512

Description

@Entropy512

The OpenCV implementation is based on Robertson's 1999 paper, and lacks the enhancements from his 2003 paper

Also, it requires compiling and reinstalling all of OpenCV to make tweaks

Reimplement the algorithm using numpy operations, even if it may cost some speed

Allows:
Setting saturation/clamp limits based on darkest and lightest images. For example, S-Log3 maxes out at around 225, so the algorithm often has weird behaviors above this. Same with any algorithm that has a lower bound

Changing the scaling at each iteration to set the maximum to 1.0, instead of the middle to 0.5 - this is more consistent when trying to determine behaviors relative to sensor clip point

Calibrating R, G, and B as one unified curve (may be possible anyway by reshaping each image to a tiled representation of R, G and B in one greyscale...) since most cameras do per-channel transforms with a common curve

Enforcing monotonicity of the result after each iteration, since almost all real cameras are monotonic in response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions