Package rst.vision

In computer science, image processing is any form of signal processing for which the input is an image.

This package contains data types for representing images (Image) or things which can be recognized in images (e.g. Face).

See also

Wikipedia article containing the definition above
http://en.wikipedia.org/wiki/Image_processing

Messages

digraph message_graph {
fontname="Arial";
fontsize=11;
stylesheet="../_static/corlab.css";
  node [fontsize=11]
  node [fontname="Arial"]
  edge [fontsize=11]
  edge [fontname="Arial"]
  "6" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-vision.html#rst.vision.Faces" TITLE="Structure rst.vision.Faces" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="RIGHT"><IMG SRC="../_static/message.svg" /></TD><TD ALIGN="LEFT">Faces</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-vision.html#rst.vision.Face" TITLE="Structure rst.vision.Face" TARGET="_parent">Face</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-vision.html#rst.vision.Faces.faces" TITLE="Field rst.vision.Faces.faces" TARGET="_parent" PORT="faces">faces</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-UINT32.html#UINT32" TITLE="Fundamental UINT32" TARGET="_parent">UINT32</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-vision.html#rst.vision.Faces.width" TITLE="Field rst.vision.Faces.width" TARGET="_parent" PORT="width">width</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-UINT32.html#UINT32" TITLE="Fundamental UINT32" TARGET="_parent">UINT32</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-vision.html#rst.vision.Faces.height" TITLE="Field rst.vision.Faces.height" TARGET="_parent" PORT="height">height</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"];
  "7" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-vision.html#rst.vision.Face" TITLE="Structure rst.vision.Face" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="RIGHT"><IMG SRC="../_static/message.svg" /></TD><TD ALIGN="LEFT">Face</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.BoundingBox" TITLE="Structure rst.geometry.BoundingBox" TARGET="_parent">BoundingBox</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-vision.html#rst.vision.Face.region" TITLE="Field rst.vision.Face.region" TARGET="_parent" PORT="region">region</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-FLOAT64.html#FLOAT64" TITLE="Fundamental FLOAT64" TARGET="_parent">FLOAT64</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-vision.html#rst.vision.Face.confidence" TITLE="Field rst.vision.Face.confidence" TARGET="_parent" PORT="confidence">confidence</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"];
  "8" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.BoundingBox" TITLE="Structure rst.geometry.BoundingBox" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="RIGHT"><IMG SRC="../_static/message.svg" /></TD><TD ALIGN="LEFT">BoundingBox</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-math.html#rst.math.Vec2DInt" TITLE="Structure rst.math.Vec2DInt" TARGET="_parent">Vec2DInt</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.BoundingBox.top_left" TITLE="Field rst.geometry.BoundingBox.top_left" TARGET="_parent" PORT="top_left">top_left</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-UINT32.html#UINT32" TITLE="Fundamental UINT32" TARGET="_parent">UINT32</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.BoundingBox.width" TITLE="Field rst.geometry.BoundingBox.width" TARGET="_parent" PORT="width">width</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-UINT32.html#UINT32" TITLE="Fundamental UINT32" TARGET="_parent">UINT32</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.BoundingBox.height" TITLE="Field rst.geometry.BoundingBox.height" TARGET="_parent" PORT="height">height</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-UINT32.html#UINT32" TITLE="Fundamental UINT32" TARGET="_parent">UINT32</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.BoundingBox.image_width" TITLE="Field rst.geometry.BoundingBox.image_width" TARGET="_parent" PORT="image_width">image_width</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-UINT32.html#UINT32" TITLE="Fundamental UINT32" TARGET="_parent">UINT32</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.BoundingBox.image_height" TITLE="Field rst.geometry.BoundingBox.image_height" TARGET="_parent" PORT="image_height">image_height</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"];
  "9" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-math.html#rst.math.Vec2DInt" TITLE="Structure rst.math.Vec2DInt" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="RIGHT"><IMG SRC="../_static/message.svg" /></TD><TD ALIGN="LEFT">Vec2DInt</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-INT32.html#INT32" TITLE="Fundamental INT32" TARGET="_parent">INT32</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-math.html#rst.math.Vec2DInt.x" TITLE="Field rst.math.Vec2DInt.x" TARGET="_parent" PORT="x">x</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-INT32.html#INT32" TITLE="Fundamental INT32" TARGET="_parent">INT32</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-math.html#rst.math.Vec2DInt.y" TITLE="Field rst.math.Vec2DInt.y" TARGET="_parent" PORT="y">y</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"];
  "1" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-vision.html#rst.vision.Images" TITLE="Structure rst.vision.Images" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="RIGHT"><IMG SRC="../_static/message.svg" /></TD><TD ALIGN="LEFT">Images</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image" TITLE="Structure rst.vision.Image" TARGET="_parent">Image</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-vision.html#rst.vision.Images.images" TITLE="Field rst.vision.Images.images" TARGET="_parent" PORT="images">images</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"];
  "2" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image" TITLE="Structure rst.vision.Image" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="RIGHT"><IMG SRC="../_static/message.svg" /></TD><TD ALIGN="LEFT">Image</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-OCTET-VECTOR.html#OCTET-VECTOR" TITLE="Fundamental OCTET-VECTOR" TARGET="_parent">OCTET-VECTOR</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image.data" TITLE="Field rst.vision.Image.data" TARGET="_parent" PORT="data">data</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-UINT32.html#UINT32" TITLE="Fundamental UINT32" TARGET="_parent">UINT32</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image.width" TITLE="Field rst.vision.Image.width" TARGET="_parent" PORT="width">width</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-UINT32.html#UINT32" TITLE="Fundamental UINT32" TARGET="_parent">UINT32</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image.height" TITLE="Field rst.vision.Image.height" TARGET="_parent" PORT="height">height</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-UINT32.html#UINT32" TITLE="Fundamental UINT32" TARGET="_parent">UINT32</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image.channels" TITLE="Field rst.vision.Image.channels" TARGET="_parent" PORT="channels">channels</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image.Depth" TITLE="Enum rst.vision.Image.Depth" TARGET="_parent">Depth</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image.depth" TITLE="Field rst.vision.Image.depth" TARGET="_parent" PORT="depth">depth</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image.ColorMode" TITLE="Enum rst.vision.Image.ColorMode" TARGET="_parent">ColorMode</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image.color_mode" TITLE="Field rst.vision.Image.color_mode" TARGET="_parent" PORT="color_mode">color_mode</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image.DataOrder" TITLE="Enum rst.vision.Image.DataOrder" TARGET="_parent">DataOrder</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image.data_order" TITLE="Field rst.vision.Image.data_order" TARGET="_parent" PORT="data_order">data_order</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"];
  "5" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image.DataOrder" TITLE="Enum rst.vision.Image.DataOrder" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="RIGHT"><IMG SRC="../_static/enum.svg" /></TD><TD ALIGN="LEFT">DataOrder</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image.DataOrder.DATA_SEPARATE" TITLE="Singleton rst.vision.Image.DataOrder.DATA_SEPARATE" TARGET="_parent">DATA_SEPARATE</TD><TD ALIGN="right" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image.DataOrder.DATA_SEPARATE" TITLE="Singleton rst.vision.Image.DataOrder.DATA_SEPARATE" TARGET="_parent">0</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image.DataOrder.DATA_INTERLEAVED" TITLE="Singleton rst.vision.Image.DataOrder.DATA_INTERLEAVED" TARGET="_parent">DATA_INTERLEAVED</TD><TD ALIGN="right" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image.DataOrder.DATA_INTERLEAVED" TITLE="Singleton rst.vision.Image.DataOrder.DATA_INTERLEAVED" TARGET="_parent">1</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"];
  "4" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image.ColorMode" TITLE="Enum rst.vision.Image.ColorMode" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="RIGHT"><IMG SRC="../_static/enum.svg" /></TD><TD ALIGN="LEFT">ColorMode</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image.ColorMode.COLOR_GRAYSCALE" TITLE="Singleton rst.vision.Image.ColorMode.COLOR_GRAYSCALE" TARGET="_parent">COLOR_GRAYSCALE</TD><TD ALIGN="right" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image.ColorMode.COLOR_GRAYSCALE" TITLE="Singleton rst.vision.Image.ColorMode.COLOR_GRAYSCALE" TARGET="_parent">0</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image.ColorMode.COLOR_RGB" TITLE="Singleton rst.vision.Image.ColorMode.COLOR_RGB" TARGET="_parent">COLOR_RGB</TD><TD ALIGN="right" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image.ColorMode.COLOR_RGB" TITLE="Singleton rst.vision.Image.ColorMode.COLOR_RGB" TARGET="_parent">1</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image.ColorMode.COLOR_BGR" TITLE="Singleton rst.vision.Image.ColorMode.COLOR_BGR" TARGET="_parent">COLOR_BGR</TD><TD ALIGN="right" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image.ColorMode.COLOR_BGR" TITLE="Singleton rst.vision.Image.ColorMode.COLOR_BGR" TARGET="_parent">2</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image.ColorMode.COLOR_YUV" TITLE="Singleton rst.vision.Image.ColorMode.COLOR_YUV" TARGET="_parent">COLOR_YUV</TD><TD ALIGN="right" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image.ColorMode.COLOR_YUV" TITLE="Singleton rst.vision.Image.ColorMode.COLOR_YUV" TARGET="_parent">4</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image.ColorMode.COLOR_YUV422" TITLE="Singleton rst.vision.Image.ColorMode.COLOR_YUV422" TARGET="_parent">COLOR_YUV422</TD><TD ALIGN="right" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image.ColorMode.COLOR_YUV422" TITLE="Singleton rst.vision.Image.ColorMode.COLOR_YUV422" TARGET="_parent">8</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"];
  "3" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image.Depth" TITLE="Enum rst.vision.Image.Depth" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="RIGHT"><IMG SRC="../_static/enum.svg" /></TD><TD ALIGN="LEFT">Depth</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image.Depth.DEPTH_8U" TITLE="Singleton rst.vision.Image.Depth.DEPTH_8U" TARGET="_parent">DEPTH_8U</TD><TD ALIGN="right" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image.Depth.DEPTH_8U" TITLE="Singleton rst.vision.Image.Depth.DEPTH_8U" TARGET="_parent">8</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image.Depth.DEPTH_16U" TITLE="Singleton rst.vision.Image.Depth.DEPTH_16U" TARGET="_parent">DEPTH_16U</TD><TD ALIGN="right" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image.Depth.DEPTH_16U" TITLE="Singleton rst.vision.Image.Depth.DEPTH_16U" TARGET="_parent">16</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image.Depth.DEPTH_32F" TITLE="Singleton rst.vision.Image.Depth.DEPTH_32F" TARGET="_parent">DEPTH_32F</TD><TD ALIGN="right" HREF="../generated/stable/package-rst-vision.html#rst.vision.Image.Depth.DEPTH_32F" TITLE="Singleton rst.vision.Image.Depth.DEPTH_32F" TARGET="_parent">32</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"];
  "6":faces -> "7" [];
  "7":region -> "8" [];
  "8":top_left -> "9" [];
  "1":images -> "2" [];
  "2" -> "5" [dir=both,arrowtail=odiamond];
  "2" -> "4" [dir=both,arrowtail=odiamond];
  "2" -> "3" [dir=both,arrowtail=odiamond];
  "2":data_order -> "5" [];
  "2":color_mode -> "4" [];
  "2":depth -> "3" [];
}

clearer: should be made invisible via css

Message Images

class rst.vision.Images

TODO A collection of images.

Code author: Johannes Wienke <jwienke@techfak.uni-bielefeld.de>

images
Type :array of rst.vision.Image

TODO

Download this file

message Images {

    /**
     * TODO
     */
    repeated Image images = 1;

}

Message Faces

class rst.vision.Faces

A list of faces with information about the dimensions of a source image used by a face detector. This allows interpretation of the bounding box data contained in the Face types.

Code author: Sebastian Wrede <swrede@techfak.uni-bielefeld.de>

faces
Type :array of rst.vision.Face

List of faces.

width
Type :UINT32

Unit: pixel

Width of the source image.

height
Type :UINT32

Unit: pixel

Height of the source image.

Download this file

message Faces {

    /**
     * List of faces.
     */
    repeated Face faces = 1;

    /**
     * Width of the source image.
     */
    // @unit(pixel)
    required uint32 width = 2;

    /**
     * Height of the source image.
     */
    // @unit(pixel)
    required uint32 height = 3;

}

Message Face

class rst.vision.Face

An object of this type represents a human face detected in an image.

The region of the image which corresponds to the face is represented as a BoundingBox .

Code author: Johannes Wienke <jwienke@techfak.uni-bielefeld.de>

region
Type :rst.geometry.BoundingBox

TODO Bounding box for the detection.

confidence
Type :FLOAT64

Unit: TODO

TODO Detection confidence factor.

Download this file

message Face {

    /**
     * TODO Bounding box for the detection.
     */
    required geometry.BoundingBox region = 1;

    /**
     * TODO Detection confidence factor.
     */
    // @unit(TODO)
    optional double confidence = 2;

}

Message Image

class rst.vision.Image

An uncompressed image with a certain pixel format, color and depth.

The binary intensity data is contained in the data field. The remaining fields contain information about the interpretation, that is dimensions (width x height), color (color_mode, channels), depth (depth) and channel layout (data_order, channels), of that data.

Suggested interpretation of RSB timestamps:

create

Image grab time

Todo

to be more precisely defined. e.g. what does this mean
for rolling shutter cameras?

Code author: Johannes Wienke <jwienke@techfak.uni-bielefeld.de>

data
Type :OCTET-VECTOR

Constraint: len(value) = (.width * .height * .channels * .depth) / 8

Stores the actual pixel data of the image.

The number of bytes and their interpretation depend on the values of the remaining fields.

width
Type :UINT32

Unit: pixel

The number of pixels in each row of the image.

height
Type :UINT32

Unit: pixel

The number of pixels in each column of the image.

channels
Type :UINT32

Unit: number

The number of color channels in the image.

The interpretation of these channels depends on color_mode.

depth
Type :rst.vision.Image.Depth

The number of bits used to encode

color_mode
Type :rst.vision.Image.ColorMode

Colorspace and layout of the color channels of the image.

Determines pixel layout in combination with data_order.

data_order
Type :rst.vision.Image.DataOrder

Layout of the color planes of the image.

Determines pixel layout in combination with color_mode.

Download this file

message Image {

    /**
     * Depth of one color channel.
     *
     * Reflecting the definitions from OpenCV's IplImage.
     */
    enum Depth {
        DEPTH_8U = 8;
        DEPTH_16U = 16;
        DEPTH_32F = 32;
    }

    /**
     * Colorspace(s) and layout of color channel(s).
     */
    enum ColorMode {

        /**
         * The image consists of only one channel containing intensity
         * values.
         *
         * MUST be used with @ref .channels = 1.
         */
        COLOR_GRAYSCALE = 0;

        /**
         * The image has three color channels containing the red,
         * green and blue color components (note the order of the
         * channels, not to be confused with @ref .COLOR_BGR).
         *
         * MUST be used with @ref .channels = 3.
         */
        COLOR_RGB = 1;

        /**
         * The image has three color channels containing the blue,
         * green and red color components (note the order of the
         * channels, not to be confused with @ref .COLOR_RGB).
         *
         * MUST be used with @ref .channels = 3.
         */
        COLOR_BGR = 2;

        /**
         * The image has three color channels, encoded in the YUV
         * colorspace, and uses the YUVYUV pixel layout.
         *
         * MUST be used with @ref .channels = 3.
         */
        COLOR_YUV = 4;

        /**
         * The image has three color channels, encoded in the YUV
         * colorspace, and uses the YUYV pixel layout.
         *
         * MUST be used with @ref .channels = 3.
         */
        COLOR_YUV422 = 8;

    }

    /**
     * Describes storage layout of pixels with respect to channels.
     */
    enum DataOrder {

        /**
         * Separate planes.
         *
         * Example for @ref .ColorMode.COLOR_RGB:
         *
         * .. parsed-literal::
         *
         *    R R R ... (@ref .width x @ref .height times)
         *    G G G ... (@ref .width x @ref .height times)
         *    B B B ... (@ref .width x @ref .height times)
         */
        DATA_SEPARATE = 0;

        /**
         * Interleaved image.
         *
         * Example for @ref .ColorMode.COLOR_RGB:
         *
         * .. parsed-literal::
         *
         *    R G B R G B R G B ... (@ref .width x @ref .height times)
         */
        DATA_INTERLEAVED = 1;

    }

    /**
     * Stores the actual pixel data of the image.
     *
     * The number of bytes and their interpretation depend on the
     * values of the remaining fields.
     */
    // @constraint(len(value) = (.width * .height * .channels * .depth) / 8)
    required bytes data = 1;

    /**
     * The number of pixels in each row of the image.
     */
    // @unit(pixel)
    required uint32 width = 2;

    /**
     * The number of pixels in each column of the image.
     */
    // @unit(pixel)
    required uint32 height = 3;

    /**
     * The number of color channels in the image.
     *
     * The interpretation of these channels depends on @ref
     * .color_mode.
     */
    // @unit(number)
    optional uint32 channels = 4 [default = 3];

    /**
     * The number of bits used to encode
     */
    optional Depth depth = 5 [default = DEPTH_8U];

    /**
     * Colorspace and layout of the color channels of the image.
     *
     * Determines pixel layout in combination with @ref .data_order.
     */
    optional ColorMode color_mode = 6 [default = COLOR_RGB];

    /**
     * Layout of the color planes of the image.
     *
     * Determines pixel layout in combination with @ref .color_mode.
     */
    optional DataOrder data_order = 7 [default = DATA_SEPARATE];

}

Message Depth

class rst.vision.Image.Depth

Depth of one color channel.

Reflecting the definitions from OpenCV’s IplImage.

DEPTH_8U
= 8

Not documented

DEPTH_16U
= 16

Not documented

DEPTH_32F
= 32

Not documented

Download this file

    enum Depth {
        DEPTH_8U = 8;
        DEPTH_16U = 16;
        DEPTH_32F = 32;
    }

Message ColorMode

class rst.vision.Image.ColorMode

Colorspace(s) and layout of color channel(s).

COLOR_GRAYSCALE
= 0

The image consists of only one channel containing intensity values.

MUST be used with channels = 1.

COLOR_RGB
= 1

The image has three color channels containing the red, green and blue color components (note the order of the channels, not to be confused with COLOR_BGR).

MUST be used with channels = 3.

COLOR_BGR
= 2

The image has three color channels containing the blue, green and red color components (note the order of the channels, not to be confused with COLOR_RGB).

MUST be used with channels = 3.

COLOR_YUV
= 4

The image has three color channels, encoded in the YUV colorspace, and uses the YUVYUV pixel layout.

MUST be used with channels = 3.

COLOR_YUV422
= 8

The image has three color channels, encoded in the YUV colorspace, and uses the YUYV pixel layout.

MUST be used with channels = 3.

Download this file

    enum ColorMode {

        /**
         * The image consists of only one channel containing intensity
         * values.
         *
         * MUST be used with @ref .channels = 1.
         */
        COLOR_GRAYSCALE = 0;

        /**
         * The image has three color channels containing the red,
         * green and blue color components (note the order of the
         * channels, not to be confused with @ref .COLOR_BGR).
         *
         * MUST be used with @ref .channels = 3.
         */
        COLOR_RGB = 1;

        /**
         * The image has three color channels containing the blue,
         * green and red color components (note the order of the
         * channels, not to be confused with @ref .COLOR_RGB).
         *
         * MUST be used with @ref .channels = 3.
         */
        COLOR_BGR = 2;

        /**
         * The image has three color channels, encoded in the YUV
         * colorspace, and uses the YUVYUV pixel layout.
         *
         * MUST be used with @ref .channels = 3.
         */
        COLOR_YUV = 4;

        /**
         * The image has three color channels, encoded in the YUV
         * colorspace, and uses the YUYV pixel layout.
         *
         * MUST be used with @ref .channels = 3.
         */
        COLOR_YUV422 = 8;

    }

Message DataOrder

class rst.vision.Image.DataOrder

Describes storage layout of pixels with respect to channels.

DATA_SEPARATE
= 0

Separate planes.

Example for COLOR_RGB:

R R R ... (width x height times)
G G G ... (width x height times)
B B B ... (width x height times)
DATA_INTERLEAVED
= 1

Interleaved image.

Example for COLOR_RGB:

R G B R G B R G B ... (width x height times)

Download this file

    enum DataOrder {

        /**
         * Separate planes.
         *
         * Example for @ref .ColorMode.COLOR_RGB:
         *
         * .. parsed-literal::
         *
         *    R R R ... (@ref .width x @ref .height times)
         *    G G G ... (@ref .width x @ref .height times)
         *    B B B ... (@ref .width x @ref .height times)
         */
        DATA_SEPARATE = 0;

        /**
         * Interleaved image.
         *
         * Example for @ref .ColorMode.COLOR_RGB:
         *
         * .. parsed-literal::
         *
         *    R G B R G B R G B ... (@ref .width x @ref .height times)
         */
        DATA_INTERLEAVED = 1;

    }

Table Of Contents

Related Documentation

This Page