You are here: Start » Image » Image Point Transforms » LogarithmImage
LogarithmImage
Header: | AVL.h |
---|---|
Namespace: | avl |
Computes a natural logarithm of each pixel.
Applications: Transforms an image in such a way that a quotient on the input image becomes a difference on the output image. This can be useful for dealing with variable illumination.
Syntax
void avl::LogarithmImage ( const avl::Image& inImage, atl::Optional<const avl::Region&> inRoi, atl::Optional<const float&> inScale, float inOffset, bool inNormalizeZero, avl::Image& outImage, avl::Profile& diagLutProfile )
Parameters
Name | Type | Range | Default | Description | |
---|---|---|---|---|---|
inImage | const Image& | Input image | |||
inRoi | Optional<const Region&> | NIL | Region of interest | ||
inScale | Optional<const float&> | NIL | Scaling factor (default: 255) | ||
inOffset | float | 1.0 - | 1.0f | Offset factor | |
inNormalizeZero | bool | Specifies whether the output range should be rescaled to start from 0 | |||
outImage | Image& | Output image | |||
diagLutProfile | Profile& | Profile depicting the resulting look-up table of the logarithm transform |
Requirements
For input inImage only pixel formats are supported: int8, uint8, int16, uint16, int32.
Read more about pixel formats in Image documentation.
In-place Processing
This function supports in-place data processing - you can pass the same reference to inImage and outImage
Read more about In-place Computation.
Description
The operation applies logarithmic operator to each pixel of an image. Logarithmic operator is defined as follows:
\[inScale \cdot \frac{log(inOffset + |P(x,y)|)}{log(inOffset + M)}\]
where:
- M is the maximum of the inImage type (i.e. 255 for UInt8, 127 for Int8).
- inScale is the expected maximum value of the transformation. If set to Auto it will result in value 127 for Int8 image and 255 for other image types.
- inOffset value corresponds to the camera's black level. Its default value is equal 1 and causes the strongest possible transform.
When inNormalizeZero is set to True, the result is not only scaled, but also normalized so that pixel value 0 is still transformed into value 0. This assures that the entire output value range is utilized.
Examples
Hardware Acceleration
This operation supports automatic parallelization for multicore and multiprocessor systems.
Errors
List of possible exceptions:
Error type | Description |
---|---|
DomainError | Not supported inImage pixel format in LogarithmImage. Supported formats: Int8, UInt8, Int16, UInt16, Int32. |