ImageManipConfig

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

Examples of functionality

Reference

class depthai.ImageManipConfig

ImageManipConfig message. Specifies image manipulation options like:

  • Crop

  • Resize

  • Warp

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

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

isResizeThumbnail(self: depthai.ImageManipConfig)bool
Returns

True if resize thumbnail mode is set, false otherwise

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, …

setCropRect(*args, **kwargs)

Overloaded function.

  1. setCropRect(self: depthai.ImageManipConfig, xmin: float, ymin: float, xmax: float, xmax: 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, name: 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

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

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

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 &setHorizontalFlip(bool flip)

Specify horizontal flip

Parameters
  • flip: True to enable 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

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

Private Functions

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

Private Members

RawImageManipConfig &cfg

Got questions?

We’re always happy to help with code or other questions you might have.