NAME
im_LabQ2Lab, im_Lab2LabQ, im_LabQ2LabS, im_LabS2LabQ, im_Lab2LabS,
im_LabS2Lab - pack and unpack LABPACK images.
SYNOPSIS
#include <vips/vips.h>
int im_LabQ2Lab(in, out)
IMAGE *in, *out;
int im_Lab2LabQ(in, out)
IMAGE *in, *out;
int im_Lab2LabS(in, out)
IMAGE *in, *out;
int im_LabS2LabQ(in, out)
IMAGE *in, *out;
int im_LabS2Lab(in, out)
IMAGE *in, *out;
int im_LabQ2LabS(in, out)
IMAGE *in, *out;
DESCRIPTION
These functions pack and unpack LAB images.
LabQ is Lab packed in to 4 unsigned chars, with the Coding field set to
LABPACK. It counts as a coded type, since most operations will not
give the correct result on an image of this type. This is the MARC
image type. Bits are allocated as 10 for L and 11 for each of a and b.
The first three bytes contain the 8 most significant bits of Lab
respectively, the final byte has 2/3/3 bits (MSB on left) of Lab
respectively.
im_LabQ2Lab() and im_Lab2LabQ() convert LABPACK images to three band
float images, scaled to look sensible to humans. This is the most
convenient LAB format for development work, but is rather slow.
im_LabQ2LabS() and im_LabS2LabQ() convert LABPACK to and from three
band signed short images. L is shifted and masked to be in the range
[0,32767], a and b are shifted and masked to lie in [-32768,32767].
This is the best computational LAB format, combining precision and
speed. Programs such as conv(1X) and similarity(1X), which can operate
directly on LABPACK images, unpack to LabS for computation.
RETURN VALUE
The functions return 0 on success and -1 on error.
SEE ALSO
im_col_XYZ2rgb(3), im_dE_fromdisp(3), im_XYZ2disp(3).
COPYRIGHT
National Gallery, 1990 - 1993
AUTHOR
J. Cupitt - 21/7/93
2 Decemder 1992 IM_XYZ2disp(3)