CPP 静态合成
This commit is contained in:
85
AdasSourrondView-main/srcs/prms.hpp
Normal file
85
AdasSourrondView-main/srcs/prms.hpp
Normal file
@@ -0,0 +1,85 @@
|
||||
/***
|
||||
* function: 360 surrond view combine c++ demo
|
||||
* author: joker.mao
|
||||
* date: 2023/07/15
|
||||
* copyright: ADAS_EYES all right reserved
|
||||
*/
|
||||
|
||||
#ifndef PRMS_H
|
||||
#define PRMS_H
|
||||
|
||||
#include <iostream>
|
||||
#include <map>
|
||||
#include <vector>
|
||||
#include <opencv2/opencv.hpp>
|
||||
#include <opencv2/core/core.hpp>
|
||||
#include <opencv2/calib3d/calib3d.hpp>
|
||||
#include <opencv2/highgui/highgui.hpp>
|
||||
|
||||
|
||||
static const char* camera_names[4] = {
|
||||
"front", "left", "back", "right"
|
||||
};
|
||||
|
||||
static const char* camera_flip_mir[4] = {
|
||||
"n", "r-", "m", "r+"
|
||||
};
|
||||
//单个格子10cm
|
||||
//--------------------------------------------------------------------
|
||||
//(shift_width, shift_height): how far away the birdview looks outside
|
||||
//of the calibration pattern in horizontal and vertical directions
|
||||
static const int shift_w = 100;
|
||||
static const int shift_h = 100;
|
||||
|
||||
static const int cali_map_w = 260;
|
||||
static const int cali_map_h = 350;
|
||||
//size of the gap between the calibration pattern and the car
|
||||
//in horizontal and vertical directions
|
||||
static const int inn_shift_w = 8;
|
||||
static const int inn_shift_h = 30;
|
||||
|
||||
//total width/height of the stitched image
|
||||
static const int total_w = cali_map_w + 2 * shift_w;
|
||||
static const int total_h = cali_map_h + 2 * shift_h;
|
||||
|
||||
//four corners of the rectangular region occupied by the car
|
||||
//top-left (x_left, y_top), bottom-right (x_right, y_bottom)
|
||||
static const int xl = shift_w + 55 + inn_shift_w;
|
||||
static const int xr = total_w - xl;
|
||||
static const int yt = shift_h + 55 + inn_shift_h;
|
||||
static const int yb = total_h - yt;
|
||||
//--------------------------------------------------------------------
|
||||
|
||||
static std::map<std::string, cv::Size> project_shapes = {
|
||||
{"front", cv::Size(total_w, yt)},
|
||||
{"back", cv::Size(total_w, yt)},
|
||||
{"left", cv::Size(total_h, xl)},
|
||||
{"right", cv::Size(total_h, xl)},
|
||||
};
|
||||
|
||||
//pixel locations of the four points to be chosen.
|
||||
//you must click these pixels in the same order when running
|
||||
//the get_projection_map.py script
|
||||
static std::map<std::string, std::vector<cv::Point2f>> project_keypoints = {
|
||||
{"front", {cv::Point2f(shift_w + 0, shift_h),
|
||||
cv::Point2f(shift_w + 260, shift_h),
|
||||
cv::Point2f(shift_w + 0, shift_h + 100),
|
||||
cv::Point2f(shift_w + 260, shift_h + 100)}},
|
||||
|
||||
{"back", {cv::Point2f(shift_w + 0, shift_h),
|
||||
cv::Point2f(shift_w + 260, shift_h),
|
||||
cv::Point2f(shift_w + 0, shift_h + 80),
|
||||
cv::Point2f(shift_w + 260, shift_h + 80)}},
|
||||
|
||||
{"left", {cv::Point2f(shift_h + 60, shift_w),
|
||||
cv::Point2f(shift_h + 300, shift_w),
|
||||
cv::Point2f(shift_h + 60, shift_w + 50),
|
||||
cv::Point2f(shift_h + 300, shift_w + 50)}},
|
||||
|
||||
{"right", {cv::Point2f(shift_h + 80, shift_w),
|
||||
cv::Point2f(shift_h + 350, shift_w),
|
||||
cv::Point2f(shift_h + 80, shift_w + 50),
|
||||
cv::Point2f(shift_h + 350, shift_w + 50)}}
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user