energy changed
This commit is contained in:
@@ -18,28 +18,12 @@ const double PI = 3.1415926;
|
||||
const int CLOCKWISE = 1;
|
||||
const int ANTICLOCKWISE = -1;
|
||||
const float ATTACK_DISTANCE = 718;//cm
|
||||
const double WHOLE_FAN = 80;//cm
|
||||
const double ARMOR_CENTER_TO_CYCLE_CENTER = 75;//cm
|
||||
//const double ARMOR_CENTER_TO_CYCLE_CENTER = 71;//cm
|
||||
const int EXTRACT_POINT_X = 120;
|
||||
const int EXTRACT_POINT_Y = 0;
|
||||
const int EXTRACT_WIDTH = 400;
|
||||
const int EXTRACT_HEIGHT = 300;
|
||||
|
||||
//以摄像头正方向位y轴
|
||||
const int GM_L = 14;//云台摄像头z方向
|
||||
const int GM_X = 15;//云台摄像头x方向
|
||||
const int GM_H = 16;//云台摄像头y方向
|
||||
|
||||
//const double STRETCH = 231.0/640.0;//实际距离与图像伸缩比
|
||||
const double STRETCH = 0.34;
|
||||
|
||||
const int ZERO_POINT_X = 281;
|
||||
const int ZERO_POINT_Y = 188;
|
||||
const double YAW_ORIGIN_RAD = PI/180*2.25;
|
||||
const double PITCH_ORIGIN_RAD = PI/180*14.85;
|
||||
|
||||
const double LIFT_HEIGHT = 20;//云台抬升高度
|
||||
|
||||
#endif //CONSTANT_H
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ class Energy {
|
||||
public:
|
||||
Energy(Serial &u, uint8_t &color);//构造函数,参数为串口和敌方颜色
|
||||
~Energy();//默认析构函数
|
||||
int run(cv::Mat &src);
|
||||
int run(cv::Mat &gimble_src, cv::Mat &base_src);
|
||||
Serial &serial;//串口
|
||||
void setEnergyRotationInit();//判断顺逆时针函数
|
||||
void extract(cv::Mat &src);//框取图像中的一块区域进行处理
|
||||
|
||||
@@ -10,6 +10,11 @@
|
||||
|
||||
using std::vector;
|
||||
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
// 此结构体为能量机关模块的结构体,用于寻找矩形轮廓
|
||||
// ---------------------------------------------------------------------------------------------------------------------
|
||||
struct EnergyPart {
|
||||
cv::RotatedRect rect;
|
||||
float angle;
|
||||
@@ -21,40 +26,45 @@ struct EnergyPart {
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
// 此结构体包括能量机关参数
|
||||
// ---------------------------------------------------------------------------------------------------------------------
|
||||
struct EnergyPartParam {
|
||||
int GRAY_THRESH;
|
||||
int SPLIT_GRAY_THRESH;
|
||||
int FAN_GRAY_THRESH;
|
||||
int ARMOR_GRAY_THRESH;
|
||||
int GRAY_THRESH;//二值化阈值
|
||||
int SPLIT_GRAY_THRESH;//通道分离二值化阈值
|
||||
int FAN_GRAY_THRESH;//扇叶识别二值化阈值
|
||||
int ARMOR_GRAY_THRESH;//装甲板识别二值化阈值
|
||||
|
||||
long FAN_CONTOUR_AREA_MAX;
|
||||
long FAN_CONTOUR_AREA_MIN;
|
||||
long FAN_CONTOUR_LENGTH_MIN;
|
||||
long FAN_CONTOUR_LENGTH_MAX;
|
||||
long FAN_CONTOUR_WIDTH_MIN;
|
||||
long FAN_CONTOUR_WIDTH_MAX;
|
||||
float FAN_CONTOUR_HW_RATIO_MAX;
|
||||
float FAN_CONTOUR_HW_RATIO_MIN;
|
||||
long FAN_CONTOUR_AREA_MAX;//扇叶面积最大值
|
||||
long FAN_CONTOUR_AREA_MIN;//扇叶面积最小值
|
||||
long FAN_CONTOUR_LENGTH_MIN;//扇叶长边长度最小值
|
||||
long FAN_CONTOUR_LENGTH_MAX;//扇叶长边长度最大值
|
||||
long FAN_CONTOUR_WIDTH_MIN;//扇叶宽边长度最小值
|
||||
long FAN_CONTOUR_WIDTH_MAX;//扇叶宽边长度最大值
|
||||
float FAN_CONTOUR_HW_RATIO_MAX;//扇叶长宽比最大值
|
||||
float FAN_CONTOUR_HW_RATIO_MIN;//扇叶长宽比最小值
|
||||
|
||||
long ARMOR_CONTOUR_AREA_MAX;
|
||||
long ARMOR_CONTOUR_AREA_MIN;
|
||||
long ARMOR_CONTOUR_LENGTH_MIN;
|
||||
long ARMOR_CONTOUR_WIDTH_MIN;
|
||||
long ARMOR_CONTOUR_LENGTH_MAX;
|
||||
long ARMOR_CONTOUR_WIDTH_MAX;
|
||||
float ARMOR_CONTOUR_HW_RATIO_MAX;
|
||||
float ARMOR_CONTOUR_HW_RATIO_MIN;
|
||||
long ARMOR_CONTOUR_AREA_MAX;//装甲板面积最大值
|
||||
long ARMOR_CONTOUR_AREA_MIN;//装甲板面积最小值
|
||||
long ARMOR_CONTOUR_LENGTH_MIN;//装甲板长边长度最小值
|
||||
long ARMOR_CONTOUR_WIDTH_MIN;//装甲板长边长度最大值
|
||||
long ARMOR_CONTOUR_LENGTH_MAX;//装甲板宽边长度最小值
|
||||
long ARMOR_CONTOUR_WIDTH_MAX;//装甲板宽边长度最大值
|
||||
float ARMOR_CONTOUR_HW_RATIO_MAX;//装甲板长宽比最大值
|
||||
float ARMOR_CONTOUR_HW_RATIO_MIN;//装甲板长宽比最小值
|
||||
|
||||
long CENTER_R_CONTOUR_AREA_MAX;
|
||||
long CENTER_R_CONTOUR_AREA_MIN;
|
||||
long CENTER_R_CONTOUR_LENGTH_MIN;
|
||||
long CENTER_R_CONTOUR_WIDTH_MIN;
|
||||
long CENTER_R_CONTOUR_LENGTH_MAX;
|
||||
long CENTER_R_CONTOUR_WIDTH_MAX;
|
||||
float CENTER_R_CONTOUR_HW_RATIO_MAX;
|
||||
float CENTER_R_CONTOUR_HW_RATIO_MIN;
|
||||
long CENTER_R_CONTOUR_AREA_MAX;//风车中心R面积最大值
|
||||
long CENTER_R_CONTOUR_AREA_MIN;//风车中心R面积最小值
|
||||
long CENTER_R_CONTOUR_LENGTH_MIN;//风车中心R长边长度最小值
|
||||
long CENTER_R_CONTOUR_WIDTH_MIN;//风车中心R长边长度最大值
|
||||
long CENTER_R_CONTOUR_LENGTH_MAX;//风车中心R宽边长度最小值
|
||||
long CENTER_R_CONTOUR_WIDTH_MAX;//风车中心R宽边长度最大值
|
||||
float CENTER_R_CONTOUR_HW_RATIO_MAX;//风车中心R长宽比最大值
|
||||
float CENTER_R_CONTOUR_HW_RATIO_MIN;//风车中心R长宽比最小值
|
||||
|
||||
float TWIN_ANGEL_MAX;
|
||||
float TWIN_ANGEL_MAX;//扇叶和装甲板匹配时极坐标角度差的最大值
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -14,7 +14,10 @@ using std::vector;
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
// 此函数为能量机关模式主控制流函数
|
||||
// ---------------------------------------------------------------------------------------------------------------------
|
||||
int Energy::run(cv::Mat &src){
|
||||
int Energy::run(cv::Mat &gimble_src, cv::Mat &base_src){
|
||||
|
||||
cv::Mat src = gimble_src;
|
||||
|
||||
// imshow("src",src);
|
||||
fans.clear();
|
||||
armors.clear();
|
||||
|
||||
Reference in New Issue
Block a user