opencv_conversions.cpp
Go to the documentation of this file.
1 #include "opencv_conversions.h"
2 
3 #include <cstring>
4 
5 #include <opencv2/imgproc.hpp>
6 
8 
9 #include <VisionX/interface/components/Calibration.h>
10 
11 #include <Image/ByteImage.h>
12 
13 void
14 visionx::convertIvtRgbToCvGray(const CByteImage& ivt_rgb, cv::Mat& cv_gray)
15 {
16  cv::Mat cv_rgb(cv::Size(ivt_rgb.width, ivt_rgb.height), CV_8UC3);
17  std::memcpy(cv_rgb.data,
18  ivt_rgb.pixels,
19  static_cast<unsigned int>(ivt_rgb.width * ivt_rgb.height * ivt_rgb.bytesPerPixel));
20 
21  cv_gray.create(cv::Size(ivt_rgb.width, ivt_rgb.height), CV_8UC1);
22  cv::cvtColor(cv_rgb, cv_gray, cv::COLOR_RGB2GRAY);
23 }
24 
25 cv::Mat
26 visionx::makeCameraMatrix(const visionx::CameraParameters& cameraParam)
27 {
28  ARMARX_CHECK_EQUAL(cameraParam.focalLength.size(), 2);
29  ARMARX_CHECK_EQUAL(cameraParam.principalPoint.size(), 2);
30  const float nodalPointX = cameraParam.principalPoint.at(0);
31  const float nodalPointY = cameraParam.principalPoint.at(1);
32  const float focalLengthX = cameraParam.focalLength.at(0);
33  const float focalLengthY = cameraParam.focalLength.at(1);
34 
35  cv::Mat camera_matrix = cv::Mat(3, 4, CV_64F, 0.0);
36  camera_matrix.at<double>(0, 2) = double(nodalPointX);
37  camera_matrix.at<double>(1, 2) = double(nodalPointY);
38  camera_matrix.at<double>(0, 0) = double(focalLengthX);
39  camera_matrix.at<double>(1, 1) = double(focalLengthY);
40  camera_matrix.at<double>(2, 2) = 1.0;
41 
42  return camera_matrix;
43 }
visionx::convertIvtRgbToCvGray
void convertIvtRgbToCvGray(const CByteImage &ivt_rgb, cv::Mat &cv_gray)
Definition: opencv_conversions.cpp:14
ExpressionException.h
visionx::makeCameraMatrix
cv::Mat makeCameraMatrix(const visionx::CameraParameters &cameraParams)
Definition: opencv_conversions.cpp:26
ARMARX_CHECK_EQUAL
#define ARMARX_CHECK_EQUAL(lhs, rhs)
This macro evaluates whether lhs is equal (==) rhs and if it turns out to be false it will throw an E...
Definition: ExpressionException.h:130
opencv_conversions.h