ImageManipConfig

This message can is used for cropping, warping, rotating, resizing, etc. an image in runtime. It can be sent from host/Script node to either ColorCamera or ImageManip.

Note

This message will reconfigure the whole config of the node, meaning you need to set all settings, not just the setting you want to change.

Examples of functionality

Reference

class depthai.ImageManipConfig

ImageManipConfig message. Specifies image manipulation options like:

  • Crop

  • Resize

  • Warp

get(self: depthai.ImageManipConfig)depthai.RawImageManipConfig

Retrieve configuration data for ImageManip.

Returns

config for ImageManip

getColormap(self: depthai.ImageManipConfig)depthai.Colormap
Returns

specified colormap

getCropConfig(self: depthai.ImageManipConfig)depthai.RawImageManipConfig.CropConfig
Returns

Crop configuration

getCropXMax(self: depthai.ImageManipConfig)float
Returns

Bottom right X coordinate of crop region

getCropXMin(self: depthai.ImageManipConfig)float
Returns

Top left X coordinate of crop region

getCropYMax(self: depthai.ImageManipConfig)float
Returns

Bottom right Y coordinate of crop region

getCropYMin(self: depthai.ImageManipConfig)float
Returns

Top left Y coordinate of crop region

getData(self: object) → numpy.ndarray[numpy.uint8]

Get non-owning reference to internal buffer

Returns

Reference to internal buffer

getFormatConfig(self: depthai.ImageManipConfig)depthai.RawImageManipConfig.FormatConfig
Returns

Format configuration

getInterpolation(self: depthai.ImageManipConfig)depthai.Interpolation

Retrieve which interpolation method to use

getRaw(self: depthai.ADatatype)depthai.RawBuffer
getResizeConfig(self: depthai.ImageManipConfig)depthai.RawImageManipConfig.ResizeConfig
Returns

Resize configuration

getResizeHeight(self: depthai.ImageManipConfig)int
Returns

Output image height

getResizeWidth(self: depthai.ImageManipConfig)int
Returns

Output image width

getSequenceNum(self: depthai.Buffer)int

Retrieves sequence number

getTimestamp(self: depthai.Buffer)datetime.timedelta

Retrieves timestamp related to dai::Clock::now()

getTimestampDevice(self: depthai.Buffer)datetime.timedelta

Retrieves timestamp directly captured from device’s monotonic clock, not synchronized to host time. Used mostly for debugging

isResizeThumbnail(self: depthai.ImageManipConfig)bool
Returns

True if resize thumbnail mode is set, false otherwise

set(self: depthai.ImageManipConfig, config: depthai.RawImageManipConfig)depthai.ImageManipConfig

Set explicit configuration.

Parameter config:

Explicit configuration

setCenterCrop(self: depthai.ImageManipConfig, ratio: float, whRatio: float = 1.0)depthai.ImageManipConfig

Specifies a centered crop.

Parameter ratio:

Ratio between input image and crop region (0..1)

Parameter whRatio:

Crop region aspect ratio - 1 equals to square, 1.7 equals to 16:9, …

setColormap(*args, **kwargs)

Overloaded function.

  1. setColormap(self: depthai.ImageManipConfig, colormap: depthai.Colormap, min: int, max: int) -> depthai.ImageManipConfig

Specify gray to color conversion map

Parameter colormap:

map from Colormap enum or Colormap::NONE to disable

  1. setColormap(self: depthai.ImageManipConfig, colormap: depthai.Colormap, max: int = 255) -> depthai.ImageManipConfig

Specify gray to color conversion map

Parameter colormap:

map from Colormap enum or Colormap::NONE to disable

  1. setColormap(self: depthai.ImageManipConfig, colormap: depthai.Colormap, max: float = 255.0) -> depthai.ImageManipConfig

Specify gray to color conversion map

Parameter colormap:

map from Colormap enum or Colormap::NONE to disable

setCropRect(*args, **kwargs)

Overloaded function.

  1. setCropRect(self: depthai.ImageManipConfig, xmin: float, ymin: float, xmax: float, ymax: float) -> depthai.ImageManipConfig

Specifies crop with rectangle with normalized values (0..1)

Parameter xmin:

Top left X coordinate of rectangle

Parameter ymin:

Top left Y coordinate of rectangle

Parameter xmax:

Bottom right X coordinate of rectangle

Parameter ymax:

Bottom right Y coordinate of rectangle

  1. setCropRect(self: depthai.ImageManipConfig, coordinates: Tuple[float, float, float, float]) -> depthai.ImageManipConfig

Specifies crop with rectangle with normalized values (0..1)

Parameter coordinates:

Coordinate of rectangle

setCropRotatedRect(self: depthai.ImageManipConfig, rr: depthai.RotatedRect, normalizedCoords: bool = True)depthai.ImageManipConfig

Specifies crop with rotated rectangle. Optionally as non normalized coordinates

Parameter rr:

Rotated rectangle which specifies crop

Parameter normalizedCoords:

If true coordinates are in normalized range (0..1) otherwise absolute

setData(*args, **kwargs)

Overloaded function.

  1. setData(self: depthai.Buffer, arg0: List[int]) -> None

Parameter data:

Copies data to internal buffer

  1. setData(self: depthai.Buffer, arg0: numpy.ndarray[numpy.uint8]) -> None

Parameter data:

Copies data to internal buffer

setFrameType(self: depthai.ImageManipConfig, type: depthai.RawImgFrame.Type)depthai.ImageManipConfig

Specify output frame type.

Parameter name:

Frame type

setHorizontalFlip(self: depthai.ImageManipConfig, flip: bool)depthai.ImageManipConfig

Specify horizontal flip

Parameter flip:

True to enable flip, false otherwise

setInterpolation(self: depthai.ImageManipConfig, interpolation: depthai.Interpolation)depthai.ImageManipConfig

Specify which interpolation method to use

Parameter interpolation:

type of interpolation

setKeepAspectRatio(self: depthai.ImageManipConfig, keep: bool)depthai.ImageManipConfig

Specifies to whether to keep aspect ratio or not

setResize(*args, **kwargs)

Overloaded function.

  1. setResize(self: depthai.ImageManipConfig, w: int, h: int) -> depthai.ImageManipConfig

Specifies output image size. After crop stage the image will be stretched to fit.

Parameter w:

Width in pixels

Parameter h:

Height in pixels

  1. setResize(self: depthai.ImageManipConfig, size: Tuple[int, int]) -> depthai.ImageManipConfig

Specifies output image size. After crop stage the image will be stretched to fit.

Parameter size:

Size in pixels

setResizeThumbnail(*args, **kwargs)

Overloaded function.

  1. setResizeThumbnail(self: depthai.ImageManipConfig, w: int, h: int, bgRed: int = 0, bgGreen: int = 0, bgBlue: int = 0) -> depthai.ImageManipConfig

Specifies output image size. After crop stage the image will be resized by preserving aspect ration. Optionally background can be specified.

Parameter w:

Width in pixels

Parameter h:

Height in pixels

Parameter bgRed:

Red component

Parameter bgGreen:

Green component

Parameter bgBlue:

Blue component

  1. setResizeThumbnail(self: depthai.ImageManipConfig, size: Tuple[int, int], bgRed: int = 0, bgGreen: int = 0, bgBlue: int = 0) -> depthai.ImageManipConfig

Specifies output image size. After crop stage the image will be resized by preserving aspect ration. Optionally background can be specified.

Parameter size:

Size in pixels

Parameter bgRed:

Red component

Parameter bgGreen:

Green component

Parameter bgBlue:

Blue component

setReusePreviousImage(self: depthai.ImageManipConfig, reuse: bool)depthai.ImageManipConfig

Instruct ImageManip to not remove current image from its queue and use the same for next message.

Parameter reuse:

True to enable reuse, false otherwise

setRotationDegrees(self: depthai.ImageManipConfig, deg: float)depthai.ImageManipConfig

Specifies clockwise rotation in degrees

Parameter deg:

Rotation in degrees

setRotationRadians(self: depthai.ImageManipConfig, rad: float)depthai.ImageManipConfig

Specifies clockwise rotation in radians

Parameter rad:

Rotation in radians

setSequenceNum(self: depthai.Buffer, arg0: int)depthai.Buffer

Retrieves sequence number

setSkipCurrentImage(self: depthai.ImageManipConfig, skip: bool)depthai.ImageManipConfig

Instructs ImageManip to skip current image and wait for next in queue.

Parameter skip:

True to skip current image, false otherwise

setTimestamp(self: depthai.Buffer, arg0: datetime.timedelta)depthai.Buffer

Sets timestamp related to dai::Clock::now()

setTimestampDevice(self: depthai.Buffer, arg0: datetime.timedelta)depthai.Buffer

Sets timestamp related to dai::Clock::now()

setVerticalFlip(self: depthai.ImageManipConfig, flip: bool)None

Specify vertical flip

Parameter flip:

True to enable vertical flip, false otherwise

setWarpBorderFillColor(self: depthai.ImageManipConfig, red: int, green: int, blue: int)depthai.ImageManipConfig

Specifies fill color for border pixels. Example:

  • setWarpBorderFillColor(255,255,255) -> white

  • setWarpBorderFillColor(0,0,255) -> blue

Parameter red:

Red component

Parameter green:

Green component

Parameter blue:

Blue component

setWarpBorderReplicatePixels(self: depthai.ImageManipConfig)depthai.ImageManipConfig

Specifies that warp replicates border pixels

setWarpTransformFourPoints(self: depthai.ImageManipConfig, pt: List[depthai.Point2f], normalizedCoords: bool)depthai.ImageManipConfig

Specifies warp by supplying 4 points in either absolute or normalized coordinates

Parameter pt:

4 points specifying warp

Parameter normalizedCoords:

If true pt is interpreted as normalized, absolute otherwise

setWarpTransformMatrix3x3(self: depthai.ImageManipConfig, mat: List[float])depthai.ImageManipConfig

Specifies warp with a 3x3 matrix

Parameter mat:

3x3 matrix

class dai::ImageManipConfig : public dai::Buffer

ImageManipConfig message. Specifies image manipulation options like:

  • Crop

  • Resize

  • Warp

Public Types

using CropConfig = RawImageManipConfig::CropConfig
using ResizeConfig = RawImageManipConfig::ResizeConfig
using FormatConfig = RawImageManipConfig::FormatConfig

Public Functions

ImageManipConfig()

Construct ImageManipConfig message.

ImageManipConfig(std::shared_ptr<RawImageManipConfig> ptr)
~ImageManipConfig() = default
ImageManipConfig &setCropRect(float xmin, float ymin, float xmax, float ymax)

Specifies crop with rectangle with normalized values (0..1)

Parameters
  • xmin: Top left X coordinate of rectangle

  • ymin: Top left Y coordinate of rectangle

  • xmax: Bottom right X coordinate of rectangle

  • ymax: Bottom right Y coordinate of rectangle

ImageManipConfig &setCropRect(std::tuple<float, float, float, float> coordinates)

Specifies crop with rectangle with normalized values (0..1)

Parameters
  • coordinates: Coordinate of rectangle

ImageManipConfig &setCropRotatedRect(RotatedRect rr, bool normalizedCoords = true)

Specifies crop with rotated rectangle. Optionally as non normalized coordinates

Parameters
  • rr: Rotated rectangle which specifies crop

  • normalizedCoords: If true coordinates are in normalized range (0..1) otherwise absolute

ImageManipConfig &setCenterCrop(float ratio, float whRatio = 1.0f)

Specifies a centered crop.

Parameters
  • ratio: Ratio between input image and crop region (0..1)

  • whRatio: Crop region aspect ratio - 1 equals to square, 1.7 equals to 16:9, …

ImageManipConfig &setWarpTransformFourPoints(std::vector<Point2f> pt, bool normalizedCoords)

Specifies warp by supplying 4 points in either absolute or normalized coordinates

Parameters
  • pt: 4 points specifying warp

  • normalizedCoords: If true pt is interpreted as normalized, absolute otherwise

ImageManipConfig &setWarpTransformMatrix3x3(std::vector<float> mat)

Specifies warp with a 3x3 matrix

Parameters
  • mat: 3x3 matrix

ImageManipConfig &setWarpBorderReplicatePixels()

Specifies that warp replicates border pixels

ImageManipConfig &setWarpBorderFillColor(int red, int green, int blue)

Specifies fill color for border pixels. Example:

  • setWarpBorderFillColor(255,255,255) -> white

  • setWarpBorderFillColor(0,0,255) -> blue

Parameters
  • red: Red component

  • green: Green component

  • blue: Blue component

ImageManipConfig &setRotationDegrees(float deg)

Specifies clockwise rotation in degrees

Parameters
  • deg: Rotation in degrees

ImageManipConfig &setRotationRadians(float rad)

Specifies clockwise rotation in radians

Parameters
  • rad: Rotation in radians

ImageManipConfig &setResize(int w, int h)

Specifies output image size. After crop stage the image will be stretched to fit.

Parameters
  • w: Width in pixels

  • h: Height in pixels

ImageManipConfig &setResize(std::tuple<int, int> size)

Specifies output image size. After crop stage the image will be stretched to fit.

Parameters
  • size: Size in pixels

ImageManipConfig &setResizeThumbnail(int w, int h, int bgRed = 0, int bgGreen = 0, int bgBlue = 0)

Specifies output image size. After crop stage the image will be resized by preserving aspect ration. Optionally background can be specified.

Parameters
  • w: Width in pixels

  • h: Height in pixels

  • bgRed: Red component

  • bgGreen: Green component

  • bgBlue: Blue component

ImageManipConfig &setResizeThumbnail(std::tuple<int, int> size, int bgRed = 0, int bgGreen = 0, int bgBlue = 0)

Specifies output image size. After crop stage the image will be resized by preserving aspect ration. Optionally background can be specified.

Parameters
  • size: Size in pixels

  • bgRed: Red component

  • bgGreen: Green component

  • bgBlue: Blue component

ImageManipConfig &setFrameType(ImgFrame::Type name)

Specify output frame type.

Parameters
  • name: Frame type

ImageManipConfig &setColormap(Colormap colormap, int min, int max)

Specify gray to color conversion map

Parameters
  • colormap: map from Colormap enum or Colormap::NONE to disable

ImageManipConfig &setColormap(Colormap colormap, float maxf)
ImageManipConfig &setColormap(Colormap colormap, int max = 255)
ImageManipConfig &setHorizontalFlip(bool flip)

Specify horizontal flip

Parameters
  • flip: True to enable flip, false otherwise

void setVerticalFlip(bool flip)

Specify vertical flip

Parameters
  • flip: True to enable vertical flip, false otherwise

ImageManipConfig &setReusePreviousImage(bool reuse)

Instruct ImageManip to not remove current image from its queue and use the same for next message.

Parameters
  • reuse: True to enable reuse, false otherwise

ImageManipConfig &setSkipCurrentImage(bool skip)

Instructs ImageManip to skip current image and wait for next in queue.

Parameters
  • skip: True to skip current image, false otherwise

ImageManipConfig &setKeepAspectRatio(bool keep)

Specifies to whether to keep aspect ratio or not

ImageManipConfig &setInterpolation(dai::Interpolation interpolation)

Specify which interpolation method to use

Parameters
  • interpolation: type of interpolation

float getCropXMin() const

Return

Top left X coordinate of crop region

float getCropYMin() const

Return

Top left Y coordinate of crop region

float getCropXMax() const

Return

Bottom right X coordinate of crop region

float getCropYMax() const

Return

Bottom right Y coordinate of crop region

int getResizeWidth() const

Return

Output image width

int getResizeHeight() const

Return

Output image height

CropConfig getCropConfig() const

Return

Crop configuration

ResizeConfig getResizeConfig() const

Return

Resize configuration

FormatConfig getFormatConfig() const

Return

Format configuration

bool isResizeThumbnail() const

Return

True if resize thumbnail mode is set, false otherwise

Colormap getColormap() const

Return

specified colormap

ImageManipConfig &set(dai::RawImageManipConfig config)

Set explicit configuration.

Parameters
  • config: Explicit configuration

dai::RawImageManipConfig get() const

Retrieve configuration data for ImageManip.

Return

config for ImageManip

dai::Interpolation getInterpolation() const

Retrieve which interpolation method to use.

Private Functions

std::shared_ptr<RawBuffer> serialize() const override

Private Members

RawImageManipConfig &cfg

Got questions?

Head over to Discussion Forum for technical support or any other questions you might have.