Function

vImageInterpolatedLookupTable_PlanarF

Uses a lookup table to transform an image in PlanarF format.

Declaration

vImage_Error vImageInterpolatedLookupTable_PlanarF(const vImage_Buffer *src, const vImage_Buffer *dest, const Pixel_F *table, vImagePixelCount tableEntries, float maxFloat, float minFloat, vImage_Flags flags);

Parameters

src

A pointer to a vImage buffer structure that contains the source image.

dest

A pointer to a vImage buffer data structure. You're responsible for filling out the height, width, and rowBytes fields of this structure, and for allocating a data buffer of the appropriate size. On return, the data buffer this structure points to contains the destination image data. When you no longer need the data buffer, you must deallocate the memory

table

A lookup table of floating-point values.

tableEntries

A value of type vImagePixelCount, giving the number of values in the array.

maxFloat

A value of type float.

minFloat

A value of type float.

flags

The options to use when performing the transformation. Pass kvImageDoNotTile if you plan to perform your own tiling or use multithreading.

Return Value

kvImageNoError; otherwise, one of the error codes described in Data Types and Constants.

Discussion

It will work in place. The table contains an arbitrary number of values; it is entered with an index interpolated from a value from the source image, to look up a floating-point value for the destination image.

The input pixel is first clipped to the range minFloat ... maxFloat. The result is then calculated as

    float clippedPixel =MAX(MIN(src_pixel, maxFloat), minFloat);
    float fIndex =  (float) (tableEntries - 1) * (clippedPixel -  minFloat)
                    / (maxFloat - minFloat);
    float fract = fIndex - floor(fIndex);
    unsigned long i = fIndex;
    float result = table[i] * (1.0f - fract) + table[i + 1] * fract;

See Also

Transforming with a Lookup Table

vImageLookupTable_PlanarFtoPlanar8

Uses a lookup table to transform an image in PlanarF format to an image in Planar8 format.

vImageLookupTable_Planar8toPlanarF

Uses a lookup table to transform an image in Planar8 format to an image in PlanarF format.

vImageLookupTable_Planar8toPlanar24

Uses a lookup table to transform an image in Planar8 format to an image in Planar24 format.

vImageLookupTable_Planar8toPlanar16

Uses a lookup table to transform an image in Planar8 format to an image in Planar16 format.

vImageLookupTable_Planar8toPlanar48

Uses a lookup table to transform an image in Planar8 format to an image in Planar48 format.

vImageLookupTable_Planar8toPlanar96

Uses a lookup table to transform an image in Planar8 format to an image in Planar96 format.

vImageLookupTable_Planar8toPlanar128

Uses a lookup table to transform an image in Planar8 format to an image in Planar128 format.

vImageLookupTable_Planar16

Uses a lookup table to remap values in a Planar16 format image.

vImageLookupTable_8to64U

Uses a lookup table to remap 8-bit unsigned integers in a source image to 64-bit unsigned values.