OpenCV conversions library

OpenCV is one of most frequently used C++ libraries in computer vision. This support library provides conversion functions so that protocol image and region objects can be quickly converted to corresponding OpenCV objects and vice-versa.

Requirements and building

To compile the module you have to enable the BUILD_OPENCV flag in CMake build system (check out the tutorial on compiling the project for more details). You will of course need OpenCV library available on the system, version 2.4 or higher is supported.


cv::Mat image_to_mat(const Image &image)

Converts a protocol image object to an OpenCV matrix that represents the image.

Parameters:image – Protocol image object
Returns:OpenCV matrix object
cv::Rect region_to_rect(const Region &region)

Converts a protocol region object to an OpenCV rectangle structure.

Parameters:image – Protocol region object
Returns:OpenCV rectangle structure
std::vector<cv::Point2f> region_to_points(const Region &region)

Converts a protocol region object to a list of OpenCV points.

Parameters:image – Protocol region object
Returns:List of points
Image mat_to_image(const cv::Mat &mat)

Converts an OpenCV matrix to a new protocol image object.

Parameters:mat – OpenCV image
Returns:Protocol image object
Region rect_to_region(const cv::Rect rect)

Converts an OpenCV rectangle structure to a protocol region object of type rectangle.

Parameters:rect – Rectangle structure
Returns:Protocol region object
Region points_to_region(const std::vector<cv::Point2f> points)

Converts a list of OpenCV points to a protocol region object of type polygon.

Parameters:rect – List of points
Returns:Protocol region object
void draw_region(cv::Mat &canvas, const Region &region, cv::Scalar color, int width = 1)

Draws a given region to an OpenCV image with a given color and line width.

  • canvas – Target OpenCV image to which the region is drawn
  • region – Protocol region object
  • color – Color of the line as a an OpenCV scalar structure
  • width – Width of the line