This commit is contained in:
JiatongSun
2019-04-28 11:00:20 +08:00
parent e3fc7cf05c
commit c2b4bdf4cd
7 changed files with 64 additions and 32 deletions

View File

@@ -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);
}

View File

@@ -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;

View File

@@ -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;

View File

@@ -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);