CameraControl¶
This message is used for controlling the color camera as well as the mono camera. The message handles things like capturing still images, configuring auto focus, anti banding, white balance, scenes, effects etc.
Examples of functionality¶
Reference¶
-
class
depthai.
CameraControl
-
class
AntiBandingMode
Members:
OFF
MAINS_50_HZ
MAINS_60_HZ
AUTO
-
property
name
-
property
-
class
AutoFocusMode
Members:
OFF
AUTO
MACRO
CONTINUOUS_VIDEO
CONTINUOUS_PICTURE
EDOF
-
property
name
-
property
-
class
AutoWhiteBalanceMode
Members:
OFF
AUTO
INCANDESCENT
FLUORESCENT
WARM_FLUORESCENT
DAYLIGHT
CLOUDY_DAYLIGHT
TWILIGHT
SHADE
-
property
name
-
property
-
class
CaptureIntent
Members:
CUSTOM
PREVIEW
STILL_CAPTURE
VIDEO_RECORD
VIDEO_SNAPSHOT
ZERO_SHUTTER_LAG
-
property
name
-
property
-
class
Command
Members:
START_STREAM
STOP_STREAM
STILL_CAPTURE
MOVE_LENS
AF_TRIGGER
AE_MANUAL
AE_AUTO
AWB_MODE
SCENE_MODE
ANTIBANDING_MODE
EXPOSURE_COMPENSATION
AE_LOCK
AE_TARGET_FPS_RANGE
AWB_LOCK
CAPTURE_INTENT
CONTROL_MODE
FRAME_DURATION
SENSITIVITY
EFFECT_MODE
AF_MODE
NOISE_REDUCTION_STRENGTH
SATURATION
BRIGHTNESS
STREAM_FORMAT
RESOLUTION
SHARPNESS
CUSTOM_USECASE
CUSTOM_CAPT_MODE
CUSTOM_EXP_BRACKETS
CUSTOM_CAPTURE
CONTRAST
AE_REGION
AF_REGION
LUMA_DENOISE
CHROMA_DENOISE
WB_COLOR_TEMP
-
property
name
-
property
-
class
ControlMode
Members:
OFF
AUTO
USE_SCENE_MODE
-
property
name
-
property
-
class
EffectMode
Members:
OFF
MONO
NEGATIVE
SOLARIZE
SEPIA
POSTERIZE
WHITEBOARD
BLACKBOARD
AQUA
-
property
name
-
property
-
class
FrameSyncMode
Members:
OFF
OUTPUT
INPUT
-
property
name
-
property
-
class
SceneMode
Members:
UNSUPPORTED
FACE_PRIORITY
ACTION
PORTRAIT
LANDSCAPE
NIGHT
NIGHT_PORTRAIT
THEATRE
BEACH
SNOW
SUNSET
STEADYPHOTO
FIREWORKS
SPORTS
PARTY
CANDLELIGHT
BARCODE
-
property
name
-
property
-
get
(self: depthai.CameraControl) → depthai.RawCameraControl
-
getCaptureStill
(self: depthai.CameraControl) → bool
-
getData
(self: object) → numpy.ndarray[numpy.uint8]
-
getExposureTime
(self: depthai.CameraControl) → datetime.timedelta
-
getLensPosition
(self: depthai.CameraControl) → int
-
getLensPositionRaw
(self: depthai.CameraControl) → float
-
getRaw
(self: depthai.ADatatype) → depthai.RawBuffer
-
getSensitivity
(self: depthai.CameraControl) → int
-
getSequenceNum
(self: depthai.Buffer) → int
-
getTimestamp
(self: depthai.Buffer) → datetime.timedelta
-
getTimestampDevice
(self: depthai.Buffer) → datetime.timedelta
-
set
(self: depthai.CameraControl, config: depthai.RawCameraControl) → depthai.CameraControl
-
setAntiBandingMode
(self: depthai.CameraControl, mode: depthai.RawCameraControl.AntiBandingMode) → depthai.CameraControl
-
setAutoExposureCompensation
(self: depthai.CameraControl, compensation: int) → depthai.CameraControl
-
setAutoExposureEnable
(self: depthai.CameraControl) → depthai.CameraControl
-
setAutoExposureLimit
(*args, **kwargs) Overloaded function.
setAutoExposureLimit(self: depthai.CameraControl, maxExposureTimeUs: int) -> depthai.CameraControl
setAutoExposureLimit(self: depthai.CameraControl, maxExposureTime: datetime.timedelta) -> depthai.CameraControl
-
setAutoExposureLock
(self: depthai.CameraControl, lock: bool) → depthai.CameraControl
-
setAutoExposureRegion
(self: depthai.CameraControl, startX: int, startY: int, width: int, height: int) → depthai.CameraControl
-
setAutoFocusLensRange
(self: depthai.CameraControl, infinityPosition: int, macroPosition: int) → depthai.CameraControl
-
setAutoFocusMode
(self: depthai.CameraControl, mode: depthai.RawCameraControl.AutoFocusMode) → depthai.CameraControl
-
setAutoFocusRegion
(self: depthai.CameraControl, startX: int, startY: int, width: int, height: int) → depthai.CameraControl
-
setAutoFocusTrigger
(self: depthai.CameraControl) → depthai.CameraControl
-
setAutoWhiteBalanceLock
(self: depthai.CameraControl, lock: bool) → depthai.CameraControl
-
setAutoWhiteBalanceMode
(self: depthai.CameraControl, mode: depthai.RawCameraControl.AutoWhiteBalanceMode) → depthai.CameraControl
-
setBrightness
(self: depthai.CameraControl, value: int) → depthai.CameraControl
-
setCaptureIntent
(self: depthai.CameraControl, mode: depthai.RawCameraControl.CaptureIntent) → depthai.CameraControl
-
setCaptureStill
(self: depthai.CameraControl, capture: bool) → depthai.CameraControl
-
setChromaDenoise
(self: depthai.CameraControl, value: int) → depthai.CameraControl
-
setContrast
(self: depthai.CameraControl, value: int) → depthai.CameraControl
-
setControlMode
(self: depthai.CameraControl, mode: depthai.RawCameraControl.ControlMode) → depthai.CameraControl
-
setData
(*args, **kwargs) Overloaded function.
setData(self: depthai.Buffer, arg0: list[int]) -> None
setData(self: depthai.Buffer, arg0: numpy.ndarray[numpy.uint8]) -> None
-
setEffectMode
(self: depthai.CameraControl, mode: depthai.RawCameraControl.EffectMode) → depthai.CameraControl
-
setExternalTrigger
(self: depthai.CameraControl, numFramesBurst: int, numFramesDiscard: int) → depthai.CameraControl
-
setFrameSyncMode
(self: depthai.CameraControl, mode: depthai.RawCameraControl.FrameSyncMode) → depthai.CameraControl
-
setLumaDenoise
(self: depthai.CameraControl, value: int) → depthai.CameraControl
-
setManualExposure
(*args, **kwargs) Overloaded function.
setManualExposure(self: depthai.CameraControl, exposureTimeUs: int, sensitivityIso: int) -> depthai.CameraControl
setManualExposure(self: depthai.CameraControl, exposureTime: datetime.timedelta, sensitivityIso: int) -> depthai.CameraControl
-
setManualFocus
(self: depthai.CameraControl, lensPosition: int) → depthai.CameraControl
-
setManualFocusRaw
(self: depthai.CameraControl, lensPositionRaw: float) → depthai.CameraControl
-
setManualWhiteBalance
(self: depthai.CameraControl, colorTemperatureK: int) → depthai.CameraControl
-
setSaturation
(self: depthai.CameraControl, value: int) → depthai.CameraControl
-
setSceneMode
(self: depthai.CameraControl, mode: depthai.RawCameraControl.SceneMode) → depthai.CameraControl
-
setSequenceNum
(self: depthai.Buffer, arg0: int) → depthai.Buffer
-
setSharpness
(self: depthai.CameraControl, value: int) → depthai.CameraControl
-
setStartStreaming
(self: depthai.CameraControl) → depthai.CameraControl
-
setStopStreaming
(self: depthai.CameraControl) → depthai.CameraControl
-
setStrobeDisable
(self: depthai.CameraControl) → depthai.CameraControl
-
setStrobeExternal
(self: depthai.CameraControl, gpioNumber: int, activeLevel: int) → depthai.CameraControl
-
setStrobeSensor
(self: depthai.CameraControl, activeLevel: int) → depthai.CameraControl
-
setTimestamp
(self: depthai.Buffer, arg0: datetime.timedelta) → depthai.Buffer
-
setTimestampDevice
(self: depthai.Buffer, arg0: datetime.timedelta) → depthai.Buffer
-
class
-
class
dai
::
CameraControl
: public dai::Buffer¶ CameraControl message. Specifies various camera control commands like:
Still capture
Auto/manual focus
Auto/manual white balance
Auto/manual exposure
Anti banding
…
By default the camera enables 3A, with auto-focus in
CONTINUOUS_VIDEO
mode, auto-white-balance inAUTO
mode, and auto-exposure with anti-banding for 50Hz mains frequency.Public Types
-
using
AutoFocusMode
= RawCameraControl::AutoFocusMode¶
-
using
AntiBandingMode
= RawCameraControl::AntiBandingMode¶
-
using
AutoWhiteBalanceMode
= RawCameraControl::AutoWhiteBalanceMode¶
-
using
SceneMode
= RawCameraControl::SceneMode¶
-
using
EffectMode
= RawCameraControl::EffectMode¶
-
using
ControlMode
= RawCameraControl::ControlMode¶
-
using
CaptureIntent
= RawCameraControl::CaptureIntent¶
-
using
FrameSyncMode
= RawCameraControl::FrameSyncMode¶
Public Functions
-
CameraControl
()¶ Construct CameraControl message.
-
~CameraControl
() = default¶
-
CameraControl &
setCaptureStill
(bool capture)¶ Set a command to capture a still image
-
CameraControl &
setStartStreaming
()¶ Set a command to start streaming
-
CameraControl &
setStopStreaming
()¶ Set a command to stop streaming
-
CameraControl &
setExternalTrigger
(int numFramesBurst, int numFramesDiscard)¶ Set a command to enable external trigger snapshot mode
A rising edge on the sensor FSIN pin will make it capture a sequence of
numFramesBurst
frames. FirstnumFramesDiscard
will be skipped as configured (can be set to 0 as well), as they may have degraded quality
-
CameraControl &
setFrameSyncMode
(FrameSyncMode mode)¶ Set the frame sync mode for continuous streaming operation mode, translating to how the camera pin FSIN/FSYNC is used: input/output/disabled
-
CameraControl &
setStrobeSensor
(int activeLevel = 1)¶ Enable STROBE output on sensor pin, optionally configuring the polarity. Note: for many sensors the polarity is high-active and not configurable
-
CameraControl &
setStrobeExternal
(int gpioNumber, int activeLevel = 1)¶ Enable STROBE output driven by a MyriadX GPIO, optionally configuring the polarity This normally requires a FSIN/FSYNC/trigger input for MyriadX (usually GPIO 41), to generate timings
-
CameraControl &
setStrobeDisable
()¶ Disable STROBE output
-
CameraControl &
setAutoFocusMode
(AutoFocusMode mode)¶ Set a command to specify autofocus mode. Default
CONTINUOUS_VIDEO
-
CameraControl &
setAutoFocusTrigger
()¶ Set a command to trigger autofocus
-
CameraControl &
setAutoFocusLensRange
(int infinityPosition, int macroPosition)¶ Set autofocus lens range,
infinityPosition < macroPosition
, valid values0..255
. May help to improve autofocus in case the lens adjustment is not typical/tuned
-
CameraControl &
setAutoFocusRegion
(uint16_t startX, uint16_t startY, uint16_t width, uint16_t height)¶ Set a command to specify focus region in pixels. Note: the region should be mapped to the configured sensor resolution, before ISP scaling
- Parameters
startX
: X coordinate of top left corner of regionstartY
: Y coordinate of top left corner of regionwidth
: Region widthheight
: Region height
-
CameraControl &
setManualFocus
(uint8_t lensPosition)¶ Set a command to specify manual focus position
- Parameters
lensPosition
: specify lens position 0..255
-
CameraControl &
setManualFocusRaw
(float lensPositionRaw)¶ Set a command to specify manual focus position (more precise control).
- Return
- Parameters
lensPositionRaw
: specify lens position 0.0f .. 1.0f
-
CameraControl &
setAutoExposureEnable
()¶ Set a command to enable auto exposure
-
CameraControl &
setAutoExposureLock
(bool lock)¶ Set a command to specify lock auto exposure
- Parameters
lock
: Auto exposure lock mode enabled or disabled
-
CameraControl &
setAutoExposureRegion
(uint16_t startX, uint16_t startY, uint16_t width, uint16_t height)¶ Set a command to specify auto exposure region in pixels. Note: the region should be mapped to the configured sensor resolution, before ISP scaling
- Parameters
startX
: X coordinate of top left corner of regionstartY
: Y coordinate of top left corner of regionwidth
: Region widthheight
: Region height
-
CameraControl &
setAutoExposureCompensation
(int compensation)¶ Set a command to specify auto exposure compensation
- Parameters
compensation
: Compensation value between -9..9, default 0
-
CameraControl &
setAutoExposureLimit
(uint32_t maxExposureTimeUs)¶ Set a command to specify the maximum exposure time limit for auto-exposure. By default the AE algorithm prioritizes increasing exposure over ISO, up to around frame-time (subject to further limits imposed by anti-banding)
- Parameters
maxExposureTimeUs
: Maximum exposure time in microseconds
-
CameraControl &
setAutoExposureLimit
(std::chrono::microseconds maxExposureTime)¶ Set a command to specify the maximum exposure time limit for auto-exposure. By default the AE algorithm prioritizes increasing exposure over ISO, up to around frame-time (subject to further limits imposed by anti-banding)
- Parameters
maxExposureTime
: Maximum exposure time
-
CameraControl &
setAntiBandingMode
(AntiBandingMode mode)¶ Set a command to specify anti-banding mode. Anti-banding / anti-flicker works in auto-exposure mode, by controlling the exposure time to be applied in multiples of half the mains period, for example in multiple of 10ms for 50Hz (period 20ms) AC-powered illumination sources.
If the scene would be too bright for the smallest exposure step (10ms in the example, with ISO at a minimum of 100), anti-banding is not effective.
- Parameters
mode
: Anti-banding mode to use. Default:MAINS_50_HZ
-
CameraControl &
setManualExposure
(uint32_t exposureTimeUs, uint32_t sensitivityIso)¶ Set a command to manually specify exposure
- Parameters
exposureTimeUs
: Exposure time in microsecondssensitivityIso
: Sensitivity as ISO value, usual range 100..1600
-
CameraControl &
setManualExposure
(std::chrono::microseconds exposureTime, uint32_t sensitivityIso)¶ Set a command to manually specify exposure
- Parameters
exposureTime
: Exposure timesensitivityIso
: Sensitivity as ISO value, usual range 100..1600
-
CameraControl &
setAutoWhiteBalanceMode
(AutoWhiteBalanceMode mode)¶ Set a command to specify auto white balance mode
- Parameters
mode
: Auto white balance mode to use. DefaultAUTO
-
CameraControl &
setAutoWhiteBalanceLock
(bool lock)¶ Set a command to specify auto white balance lock
- Parameters
lock
: Auto white balance lock mode enabled or disabled
-
CameraControl &
setManualWhiteBalance
(int colorTemperatureK)¶ Set a command to manually specify white-balance color correction
- Parameters
colorTemperatureK
: Light source color temperature in kelvins, range 1000..12000
-
CameraControl &
setBrightness
(int value)¶ Set a command to adjust image brightness
- Parameters
value
: Brightness, range -10..10, default 0
-
CameraControl &
setContrast
(int value)¶ Set a command to adjust image contrast
- Parameters
value
: Contrast, range -10..10, default 0
-
CameraControl &
setSaturation
(int value)¶ Set a command to adjust image saturation
- Parameters
value
: Saturation, range -10..10, default 0
-
CameraControl &
setSharpness
(int value)¶ Set a command to adjust image sharpness
- Parameters
value
: Sharpness, range 0..4, default 1
-
CameraControl &
setLumaDenoise
(int value)¶ Set a command to adjust luma denoise amount
- Parameters
value
: Luma denoise amount, range 0..4, default 1
-
CameraControl &
setChromaDenoise
(int value)¶ Set a command to adjust chroma denoise amount
- Parameters
value
: Chroma denoise amount, range 0..4, default 1
-
CameraControl &
setSceneMode
(SceneMode mode)¶ Set a command to specify scene mode
- Parameters
mode
: Scene mode
-
CameraControl &
setEffectMode
(EffectMode mode)¶ Set a command to specify effect mode
- Parameters
mode
: Effect mode
-
CameraControl &
setControlMode
(ControlMode mode)¶ Set a command to specify control mode
- Parameters
mode
: Control mode
-
CameraControl &
setCaptureIntent
(CaptureIntent mode)¶ Set a command to specify capture intent mode
- Parameters
mode
: Capture intent mode
-
bool
getCaptureStill
() const¶ Check whether command to capture a still is set
- Return
True if capture still command is set
-
std::chrono::microseconds
getExposureTime
() const¶ Retrieves exposure time
-
int
getSensitivity
() const¶ Retrieves sensitivity, as an ISO value
-
int
getLensPosition
() const¶ Retrieves lens position, range 0..255. Returns -1 if not available
-
float
getLensPositionRaw
() const¶ Retrieves lens position, range 0.0f..1.0f.
-
CameraControl &
set
(dai::RawCameraControl config)¶ Set explicit configuration.
- Parameters
config
: Explicit configuration
-
dai::RawCameraControl
get
() const¶ Retrieve configuration data for CameraControl.
- Return
config for CameraControl
Private Members
-
RawCameraControl &
cfg
¶