|
|
#ifndef OPENPOSE_PRIVATE_CALIBRATION_GRID_PATTERN_FUNCTIONS_HPP |
|
|
#define OPENPOSE_PRIVATE_CALIBRATION_GRID_PATTERN_FUNCTIONS_HPP |
|
|
|
|
|
#include <opencv2/opencv.hpp> |
|
|
#include <openpose/core/common.hpp> |
|
|
|
|
|
namespace op |
|
|
{ |
|
|
enum class Points2DOrigin |
|
|
{ |
|
|
TopLeft, |
|
|
TopRight, |
|
|
BottomLeft, |
|
|
BottomRight |
|
|
}; |
|
|
|
|
|
std::pair<bool, std::vector<cv::Point2f>> findAccurateGridCorners( |
|
|
const cv::Mat& image, const cv::Size& gridInnerCorners); |
|
|
|
|
|
std::vector<cv::Point3f> getObjects3DVector( |
|
|
const cv::Size& gridInnerCorners, const float gridSquareSizeMm); |
|
|
|
|
|
void drawGridCorners( |
|
|
cv::Mat& image, const cv::Size& gridInnerCorners, const std::vector<cv::Point2f>& points2DVector); |
|
|
|
|
|
std::array<unsigned int, 4> getOutterCornerIndices( |
|
|
const std::vector<cv::Point2f>& points2DVector, const cv::Size& gridInnerCorners); |
|
|
|
|
|
void reorderPoints( |
|
|
std::vector<cv::Point2f>& points2DVector, const cv::Size& gridInnerCorners, |
|
|
const cv::Mat& image, const bool showWarning = true); |
|
|
|
|
|
void plotGridCorners( |
|
|
const cv::Size& gridInnerCorners, const std::vector<cv::Point2f>& points2DVector, |
|
|
const std::string& imagePath, const cv::Mat& image); |
|
|
} |
|
|
|
|
|
#endif |
|
|
|