From bb2a088d386d7a16e60b1f19e3a0cfdd817cabb1 Mon Sep 17 00:00:00 2001 From: sun Date: Thu, 8 Aug 2019 23:00:06 +0800 Subject: [PATCH] energy changed --- .gitignore | 3 ++- energy/src/energy/calibrate/structing.cpp | 26 ++++++++++++++--------- energy/src/energy/clear/clear.cpp | 2 +- energy/src/energy/clear/energy_init.cpp | 8 ++++--- energy/src/energy/find/energy_finder.cpp | 2 +- energy/src/energy/find/target_finder.cpp | 2 +- main.cpp | 10 ++++----- 7 files changed, 31 insertions(+), 22 deletions(-) diff --git a/.gitignore b/.gitignore index 751829f..31226cb 100644 --- a/.gitignore +++ b/.gitignore @@ -10,4 +10,5 @@ others/include/config/config.h others/MV-UB31-Group0.config .DS_Store gimbal_video -chassis_video \ No newline at end of file +chassis_video +test_video \ No newline at end of file diff --git a/energy/src/energy/calibrate/structing.cpp b/energy/src/energy/calibrate/structing.cpp index dc8338d..4cff123 100644 --- a/energy/src/energy/calibrate/structing.cpp +++ b/energy/src/energy/calibrate/structing.cpp @@ -99,24 +99,30 @@ void Energy::FlowStripFanStruct(cv::Mat &src) { // --------------------------------------------------------------------------------------------------------------------- void Energy::FlowStripStruct(cv::Mat &src) { Mat element_dilate_1 = getStructuringElement(MORPH_RECT, Size(5, 5)); - Mat element_erode_1 = getStructuringElement(MORPH_RECT, Size(3, 3)); - Mat element_dilate_2 = getStructuringElement(MORPH_RECT, Size(3, 3)); + Mat element_erode_1 = getStructuringElement(MORPH_RECT, Size(5, 5)); + Mat element_dilate_2 = getStructuringElement(MORPH_RECT, Size(2, 2)); Mat element_erode_2 = getStructuringElement(MORPH_RECT, Size(2 , 2)); - Mat element_dilate_3 = getStructuringElement(MORPH_RECT, Size(3, 3)); - Mat element_erode_3 = getStructuringElement(MORPH_RECT, Size(1 , 1)); + Mat element_dilate_3 = getStructuringElement(MORPH_RECT, Size(2, 2)); + Mat element_erode_3 = getStructuringElement(MORPH_RECT, Size(2 , 2)); + Mat element_dilate_4 = getStructuringElement(MORPH_RECT, Size(2, 2)); + Mat element_erode_4 = getStructuringElement(MORPH_RECT, Size(1 , 1)); - dilate(src, src, element_dilate_1); +// dilate(src, src, element_dilate_1); // imshow("dilate_1", src); erode(src,src, element_erode_1); -// imshow("erode_1", src); - erode(src,src, element_erode_2); + imshow("erode_1", src); +// erode(src,src, element_erode_2); // imshow("erode_2", src); - erode(src,src, element_erode_3); +// erode(src,src, element_erode_3); // imshow("erode_3", src); -// dilate(src, src, element_dilate_2); -// imshow("dilate_2", src); + dilate(src, src, element_dilate_1); +// imshow("dilate_1", src); + dilate(src, src, element_dilate_2); + imshow("dilate_2", src); // dilate(src, src, element_dilate_3); // imshow("dilate_3", src); +// dilate(src, src, element_dilate_4); +// imshow("dilate_4", src); } diff --git a/energy/src/energy/clear/clear.cpp b/energy/src/energy/clear/clear.cpp index 4311d00..cc3affc 100644 --- a/energy/src/energy/clear/clear.cpp +++ b/energy/src/energy/clear/clear.cpp @@ -35,5 +35,5 @@ void Energy::initImage(cv::Mat &src) { threshold(src, src, energy_part_param_.BLUE_GRAY_THRESH, 255, THRESH_BINARY); } if (show_process)imshow("bin", src); - if (show_energy)waitKey(1); + if (show_energy || show_process)waitKey(1); } diff --git a/energy/src/energy/clear/energy_init.cpp b/energy/src/energy/clear/energy_init.cpp index 1b7a974..6e0628a 100644 --- a/energy/src/energy/clear/energy_init.cpp +++ b/energy/src/energy/clear/energy_init.cpp @@ -83,7 +83,7 @@ void Energy::initEnergy() { void Energy::initEnergyPartParam() { // gimbal_energy_part_param_.GRAY_THRESH = 120;//home // gimbal_energy_part_param_.GRAY_THRESH = 200;//official - gimbal_energy_part_param_.RED_GRAY_THRESH = 180;//game + gimbal_energy_part_param_.RED_GRAY_THRESH = 150;//game gimbal_energy_part_param_.BLUE_GRAY_THRESH = 100;//game gimbal_energy_part_param_.SPLIT_GRAY_THRESH = 180; gimbal_energy_part_param_.FAN_GRAY_THRESH = 75; @@ -143,9 +143,11 @@ void Energy::initEnergyPartParam() { gimbal_energy_part_param_.FLOW_STRIP_CONTOUR_LENGTH_MIN = 32; gimbal_energy_part_param_.FLOW_STRIP_CONTOUR_LENGTH_MAX = 55; gimbal_energy_part_param_.FLOW_STRIP_CONTOUR_WIDTH_MIN = 4; - gimbal_energy_part_param_.FLOW_STRIP_CONTOUR_WIDTH_MAX = 20; +// gimbal_energy_part_param_.FLOW_STRIP_CONTOUR_WIDTH_MAX = 20; + gimbal_energy_part_param_.FLOW_STRIP_CONTOUR_WIDTH_MAX = 40; gimbal_energy_part_param_.FLOW_STRIP_CONTOUR_HW_RATIO_MAX = 7; - gimbal_energy_part_param_.FLOW_STRIP_CONTOUR_HW_RATIO_MIN = 3; +// gimbal_energy_part_param_.FLOW_STRIP_CONTOUR_HW_RATIO_MIN = 3; + gimbal_energy_part_param_.FLOW_STRIP_CONTOUR_HW_RATIO_MIN = 1; gimbal_energy_part_param_.FLOW_STRIP_CONTOUR_AREA_RATIO_MIN = 0.6; gimbal_energy_part_param_.FLOW_STRIP_CONTOUR_INTERSETION_AREA_MIN = 100; diff --git a/energy/src/energy/find/energy_finder.cpp b/energy/src/energy/find/energy_finder.cpp index 57e31fc..8395bc4 100644 --- a/energy/src/energy/find/energy_finder.cpp +++ b/energy/src/energy/find/energy_finder.cpp @@ -417,7 +417,7 @@ bool Energy::findCenterROI(const cv::Mat src) { flow_strip.center.y - target_point.y); p2p = p2p / pointDistance(flow_strip.center, target_point);//单位化 center_ROI = cv::RotatedRect(cv::Point2f(flow_strip.center + p2p * length * 1.7), - Size2f(length * 1.4, length * 1.4), -90); + Size2f(length * 1.7, length * 1.7), -90); return true; } diff --git a/energy/src/energy/find/target_finder.cpp b/energy/src/energy/find/target_finder.cpp index 369ee94..7e4750f 100644 --- a/energy/src/energy/find/target_finder.cpp +++ b/energy/src/energy/find/target_finder.cpp @@ -76,7 +76,7 @@ bool Energy::findTargetInFlowStripFan() { // waitKey(); // cout << "target armor cnt: " << target_armors.size() << endl; if (target_armors.empty()) { - if (show_info)cout << "t6find target armor false" << endl; + if (show_info)cout << "find target armor false" << endl; return false; } else { return true; diff --git a/main.cpp b/main.cpp index 42ca501..115fa31 100644 --- a/main.cpp +++ b/main.cpp @@ -30,10 +30,10 @@ using namespace std; McuData mcu_data = { // 单片机端回传结构体 0, // 当前云台yaw角 0, // 当前云台pitch角 - ARMOR_STATE, // 当前状态,自瞄-大符-小符 + BIG_ENERGY_STATE, // 当前状态,自瞄-大符-小符 0, // 云台角度标记位 1, // 是否启用数字识别 - ENEMY_RED, // 敌方颜色 + ENEMY_BLUE, // 敌方颜色 0, // 能量机关x轴补偿量 0, // 能量机关y轴补偿量 }; @@ -66,8 +66,8 @@ int main(int argc, char *argv[]) { video_gimbal = new CameraWrapper(ARMOR_CAMERA_EXPOSURE, ARMOR_CAMERA_GAIN, 2/*, "armor"*/); video_chassis = new CameraWrapper(ENERGY_CAMERA_EXPOSURE, ENERGY_CAMERA_GAIN, 2/*, "energy"*/); } else { - video_gimbal = new VideoWrapper(PROJECT_DIR"/8-7-NO7.avi"); - video_chassis = new VideoWrapper(PROJECT_DIR"/8-7-NO7.avi"); + video_gimbal = new VideoWrapper(PROJECT_DIR"/test_video/red_small.avi"); + video_chassis = new VideoWrapper(PROJECT_DIR"/test_video/blue_small.avi"); } if (video_gimbal->init()) { LOGM("video_gimbal source initialization successfully."); @@ -182,7 +182,7 @@ int main(int argc, char *argv[]) { armor_finder.run(gimbal_src); }); } -// cv::waitKey(0); + cv::waitKey(0); }); } while (ok); delete video_gimbal;