42 lines
1.1 KiB
Groff
42 lines
1.1 KiB
Groff
|
.TH IM_INVERTLUT 3 "June 2001"
|
||
|
.SH NAME
|
||
|
im_invertlut \- turn a set of greyscale measurements into a gamma-correcting
|
||
|
LUT
|
||
|
.SH SYNOPSIS
|
||
|
#include <vips/vips.h>
|
||
|
|
||
|
int
|
||
|
.br
|
||
|
im_invertlut( DOUBLEMASK *input, IMAGE *output, int lut_size )
|
||
|
|
||
|
.SH DESCRIPTION
|
||
|
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.
|
||
|
|
||
|
.SH RETURN VALUE
|
||
|
-1 on error, otherwise 0
|
||
|
.SH SEE ALSO
|
||
|
im_histgr(3), im_hsp(3), im_heq(3), im_identity(3).
|
||
|
.SH COPYRIGHT
|
||
|
2001, National Gallery
|