im_invertlut(3)

im_invertlut3

Turn a set of greyscale measurements into a gamma-correcting lut

Usage

#include <vips/vips.h>

int
im_invertlut( DOUBLEMASK *input, IMAGE *output, int lut_size )

Overview

Given a mask of target values and real values, generate a LUT which will map reals to targets. Handy for linearising images from measurements of a colour chart. All values in [0,1]. Extrapolate head and tail to 0 and 1.

Eg. input like:

4 3
0.1 0.2 0.3 0.1
0.2 0.4 0.4 0.2
0.7 0.5 0.6 0.3

means a patch with 10% reflectance produces an image with 20% in channel 1, 30% in channel 2, and 10% in channel 3. A patch with 20% reflectance makes an image with 40% red, 40% green and 20% blue, and so on.

Inputs don't need to be sorted (we do that). Generate any precision LUT ... typically ask for 256 elements.

It won't work too well for non-monotonic camera responses (should fix this).

Interpolation is simple piecewise linear; ought to do something better really.

Return value

-1 on error, otherwise 0

Releases

Unchanged in 4 releases since Debian 3.1 (Sarge).

  1. 3.1–6.0

From libvips-dev 7.20.7-1+b3 in Debian 6.0 (Squeeze). Parsed by carta from the page's man source.