Project ↗ | Documentation ↗ | — | Tutorials ↗ | How To's ↗ | Explanations ↗ | References |
Entry ↗ | — | Sections ↘ | Permuted Sections ↘ | Names ↘ | Permuted Names ↘ | Strict ↘ | Implementations ↘ |
Documentation -- Reference Pages -- transform lookup indexed
Table Of Contents
Operators
Operators
↑ aktive op lut compose
Syntax: aktive op lut compose a b [→ definition]
Returns the composition A*B
of the two indexed LUTs A and B. This composition is defined as (A*B) (src) == A (B (src))
.
Internally this is computed as applying LUT A to input B, i.e. A (B)
.
Input | Description |
---|---|
a | LUT A to compose |
b | LUT B to compose |
↑ aktive op lut from
Syntax: aktive op lut from (param value)... [→ definition]
Create a single-band, single-row indexed LUT from values
Parameter | Type | Default | Description |
---|---|---|---|
values | double... | LUT values |
↑ aktive op lut indexed
Syntax: aktive op lut indexed lut src ?(param value)...? [→ definition]
Returns the result of mapping the input through the LUT.
This operator is strict in the 1st input. The LUT is materialized and cached.
The location of the LUT image is ignored.
The LUT has to be single-row, with multiple columns and bands.
Each LUT band is applied to the corresponding image band. The LUT's last band is replicated if the LUT has less bands than the image. Excess LUT bands are ignored.
Input pixels are expected to be in the range 0..1
. Values outside of that range are clamped to these (saturated math). The LUT width is used to quantize the clamped values into integer indices suitable for the LUT. The so-addressed LUT value becomes the value for that pixel of the result.
In interpolation mode (default: off) the fractional part of the input pixel is used to linearly interpolate between the values at the LUT index and the next index to determine the result.
The difference between this operator and aktive op lut indexed-core is the handling of a LUT with less bands than the input. Here the LUT is extended by replicating the last band. The core op throwns an error instead.
Input | Description |
---|---|
lut | The LUT to apply. Materialized at construction time. |
src | The image to apply the LUT to. |
Parameter | Type | Default | Description |
---|---|---|---|
interpolate | bool | false | Flag to activate interpolation mode. |
↑ aktive op lut indexed-core
Syntax: aktive op lut indexed-core lut src ?(param value)...? [→ definition]
Returns the result of mapping the input through the LUT.
This operator is strict in the 1st input. The LUT is materialized and cached.
The location of the LUT image is ignored.
The LUT has to be single-row, with multiple columns and bands.
Each LUT band is applied to the corresponding image band. An error is thrown if the LUT has less bands than the image. Excess LUT bands are ignored.
Input pixels are expected to be in the range 0..1
. Values outside of that range are clamped to these (saturated math). The LUT width is used to quantize the clamped values into integer indices suitable for the LUT. The so-addressed LUT value becomes the value for that pixel of the result.
In interpolation mode (default: off) the fractional part of the input pixel is used to linearly interpolate between the values at the LUT index and the next index to determine the result.
The difference between this operator and aktive op lut indexed is the handling of a LUT with less bands than the input. Here an error is thrown. The wrapper extends the LUT by replicating the last band instead.
Input | Description |
---|---|
lut | The LUT to apply. Materialized at construction time. |
src | The image to apply the LUT to. |
Parameter | Type | Default | Description |
---|---|---|---|
interpolate | bool | false | Flag to activate value interpolation mode. |