Android.Hardware.Camera2.CaptureResult.TonemapCurve Property

java Example

curveRed =
   [ P0(in, out), P1(in, out), P2(in, out), P3(in, out), ..., PN(in, out) ]
 2 <= N <= android.tonemap.maxCurvePoints

java Example

curveRed = [ (0, 0), (1.0, 1.0) ]
 

java Example

curveRed = [ (0, 1.0), (1.0, 0) ]
 

java Example

curveRed = [
   (0.0000, 0.0000), (0.0667, 0.2920), (0.1333, 0.4002), (0.2000, 0.4812),
   (0.2667, 0.5484), (0.3333, 0.6069), (0.4000, 0.6594), (0.4667, 0.7072),
   (0.5333, 0.7515), (0.6000, 0.7928), (0.6667, 0.8317), (0.7333, 0.8685),
   (0.8000, 0.9035), (0.8667, 0.9370), (0.9333, 0.9691), (1.0000, 1.0000) ]
 

java Example

curveRed = [
   (0.0000, 0.0000), (0.0667, 0.2864), (0.1333, 0.4007), (0.2000, 0.4845),
   (0.2667, 0.5532), (0.3333, 0.6125), (0.4000, 0.6652), (0.4667, 0.7130),
   (0.5333, 0.7569), (0.6000, 0.7977), (0.6667, 0.8360), (0.7333, 0.8721),
   (0.8000, 0.9063), (0.8667, 0.9389), (0.9333, 0.9701), (1.0000, 1.0000) ]
 

Syntax

[Android.Runtime.Register("TONEMAP_CURVE")]
public static CaptureResult.Key TonemapCurve { get; }

See Also

CameraCharacteristics.InfoSupportedHardwareLevel
CameraCharacteristics.TonemapMaxCurvePoints
CaptureRequest.TonemapMode

Value

Documentation for this section has not yet been entered.

Remarks

java Example

curveRed =
   [ P0(in, out), P1(in, out), P2(in, out), P3(in, out), ..., PN(in, out) ]
 2 <= N <= android.tonemap.maxCurvePoints

java Example

curveRed = [ (0, 0), (1.0, 1.0) ]
 

java Example

curveRed = [ (0, 1.0), (1.0, 0) ]
 

java Example

curveRed = [
   (0.0000, 0.0000), (0.0667, 0.2920), (0.1333, 0.4002), (0.2000, 0.4812),
   (0.2667, 0.5484), (0.3333, 0.6069), (0.4000, 0.6594), (0.4667, 0.7072),
   (0.5333, 0.7515), (0.6000, 0.7928), (0.6667, 0.8317), (0.7333, 0.8685),
   (0.8000, 0.9035), (0.8667, 0.9370), (0.9333, 0.9691), (1.0000, 1.0000) ]
 

java Example

curveRed = [
   (0.0000, 0.0000), (0.0667, 0.2864), (0.1333, 0.4007), (0.2000, 0.4845),
   (0.2667, 0.5532), (0.3333, 0.6125), (0.4000, 0.6652), (0.4667, 0.7130),
   (0.5333, 0.7569), (0.6000, 0.7977), (0.6667, 0.8360), (0.7333, 0.8721),
   (0.8000, 0.9063), (0.8667, 0.9389), (0.9333, 0.9701), (1.0000, 1.0000) ]
 

Tonemapping / contrast / gamma curve to use when CaptureRequest.TonemapMode is CONTRAST_CURVE.

The tonemapCurve consist of three curves for each of red, green, and blue channels respectively. The following example uses the red channel as an example. The same logic applies to green and blue channel. Each channel's curve is defined by an array of control points:

These are sorted in order of increasing Pin; it is always guaranteed that input values 0.0 and 1.0 are included in the list to define a complete mapping. For input values between control points, the camera device must linearly interpolate between the control points.

Each curve can have an independent number of points, and the number of points can be less than max (that is, the request doesn't have to always provide a curve with number of points equivalent to CameraCharacteristics.TonemapMaxCurvePoints).

A few examples, and their corresponding graphical mappings; these only specify the red channel and the precision is limited to 4 digits, for conciseness.

Linear mapping:

Invert mapping:

Gamma 1/2.2 mapping, with 16 control points:

Standard sRGB gamma mapping, per IEC 61966-2-1:1999, with 16 control points:

Optional - This value may be null on some devices.

Full capability - Present on all camera devices that report being CameraMetadata.INFO_SUPPORTED_HARDWARE_LEVEL_FULL devices in the CameraCharacteristics.InfoSupportedHardwareLevel key

[Android Documentation]

Requirements

Namespace: Android.Hardware.Camera2
Assembly: Mono.Android (in Mono.Android.dll)
Assembly Versions: 0.0.0.0