Auto Aim
This commit is contained in:
@@ -11,7 +11,7 @@ using std::vector;
|
||||
void Energy::StructingElementClose(cv::Mat &src){
|
||||
if (src.empty())return;
|
||||
//threshold(src, src, energy_part_param_.CAMERA_GRAY_THRESH, 255, THRESH_BINARY);
|
||||
Mat element = getStructuringElement(MORPH_RECT, Size(6, 6));
|
||||
Mat element = getStructuringElement(MORPH_RECT, Size(10, 10));
|
||||
morphologyEx(src, src, MORPH_CLOSE, element);
|
||||
}
|
||||
|
||||
|
||||
@@ -36,6 +36,7 @@ int Energy::findFan(const cv::Mat &src, vector<EnergyPart> &fans, int &last_fans
|
||||
|
||||
float length = cur_size.height > cur_size.width ? cur_size.height : cur_size.width;
|
||||
float width = cur_size.height < cur_size.width ? cur_size.height : cur_size.width;
|
||||
cout<<"fan area: "<<length<<'\t'<<width<<endl;
|
||||
|
||||
// if(length>20&&width>20){
|
||||
// cout<<cur_rect.center;
|
||||
|
||||
@@ -13,16 +13,16 @@ void Energy::initEnergyPartParam() {
|
||||
energy_part_param_.RPM = 10;
|
||||
energy_part_param_.HIT_TIME = 1.14;
|
||||
|
||||
energy_part_param_.GRAY_THRESH = 240;
|
||||
energy_part_param_.GRAY_THRESH = 220;
|
||||
energy_part_param_.SPLIT_GRAY_THRESH = 60;
|
||||
energy_part_param_.FAN_GRAY_THRESH = 75;
|
||||
energy_part_param_.ARMOR_GRAY_THRESH = 80;
|
||||
|
||||
energy_part_param_.FAN_CONTOUR_AREA_MAX = 17000;
|
||||
energy_part_param_.FAN_CONTOUR_AREA_MIN = 0;
|
||||
energy_part_param_.FAN_CONTOUR_LENGTH_MIN = 100;
|
||||
energy_part_param_.FAN_CONTOUR_LENGTH_MIN = 90;
|
||||
energy_part_param_.FAN_CONTOUR_LENGTH_MAX = 140;
|
||||
energy_part_param_.FAN_CONTOUR_WIDTH_MIN = 40;
|
||||
energy_part_param_.FAN_CONTOUR_WIDTH_MIN = 35;
|
||||
energy_part_param_.FAN_CONTOUR_WIDTH_MAX = 60;
|
||||
energy_part_param_.FAN_CONTOUR_HW_RATIO_MAX = 4;
|
||||
energy_part_param_.FAN_CONTOUR_HW_RATIO_MIN = 1;
|
||||
|
||||
@@ -12,7 +12,7 @@ extern float curr_yaw, curr_pitch, mark_yaw, mark_pitch;
|
||||
extern int mark;
|
||||
|
||||
int Energy::run(cv::Mat &src){
|
||||
// imshow("src",src);
|
||||
imshow("src",src);
|
||||
fans.clear();
|
||||
armors.clear();
|
||||
fanPosition.clear();
|
||||
@@ -25,11 +25,11 @@ int Energy::run(cv::Mat &src){
|
||||
// if(first_armor_centers.size()>200)first_armor_centers.clear();
|
||||
// cout<<"first_armor_centers.size(): "<<first_armor_centers.size()<<endl;
|
||||
|
||||
imagePreprocess(src);
|
||||
// imagePreprocess(src);
|
||||
// imshow("img_preprocess",src);
|
||||
|
||||
threshold(src, src, energy_part_param_.GRAY_THRESH, 255, THRESH_BINARY);
|
||||
// imshow("bin",src);
|
||||
imshow("bin",src);
|
||||
|
||||
|
||||
fans_cnt = findFan(src, fans, last_fans_cnt);
|
||||
@@ -51,8 +51,8 @@ int Energy::run(cv::Mat &src){
|
||||
cout<<"all_armor_centers.size(): "<<all_armor_centers.size()<<endl;
|
||||
cycleLeastFit();
|
||||
|
||||
// cycle_center = cv::Point(212,246);
|
||||
// radius = 123.942;
|
||||
cycle_center = cv::Point(321,319);
|
||||
radius = 109.178;
|
||||
attack_distance = ATTACK_DISTANCE * 123.323 / radius;
|
||||
|
||||
getFanPosition(fanPosition, fans, cycle_center, radius);
|
||||
|
||||
Reference in New Issue
Block a user