From cd5528cfb7c9b1b34f1abd9718879373ee34b30a Mon Sep 17 00:00:00 2001 From: xinyang <895639507@qq.com> Date: Tue, 9 Jul 2019 18:45:00 +0800 Subject: [PATCH 1/3] fix bug. --- armor/include/armor_finder/armor_finder.h | 4 +--- armor/src/armor_finder/armor_finder.cpp | 16 +--------------- .../searching_state/searching_state.cpp | 2 +- 3 files changed, 3 insertions(+), 19 deletions(-) diff --git a/armor/include/armor_finder/armor_finder.h b/armor/include/armor_finder/armor_finder.h index bfbd5b7..3e23945 100644 --- a/armor/include/armor_finder/armor_finder.h +++ b/armor/include/armor_finder/armor_finder.h @@ -30,7 +30,7 @@ private: typedef cv::TrackerKCF TrackerToUse; // Tracker类型定义 typedef enum{ - WEAKSEARCHING_STATE, SEARCHING_STATE, TRACKING_STATE, STANDBY_STATE + SEARCHING_STATE, TRACKING_STATE, STANDBY_STATE } State; // 自瞄状态枚举定义 const uint8_t &enemy_color; // 敌方颜色,引用外部变量,自动变化 @@ -41,8 +41,6 @@ private: Classifier classifier; // CNN分类器对象实例,用于数字识别 int contour_area; // 装甲区域亮点个数,用于数字识别未启用时判断是否跟丢(已弃用) int tracking_cnt; // 记录追踪帧数,用于定时退出追踪 - int miss_cnt; // - int weak_cnt; // Serial &serial; // 串口对象,引用外部变量,用于和能量机关共享同一个变量 const uint8_t &use_classifier; // 标记是否启用CNN分类器,引用外部变量,自动变化 diff --git a/armor/src/armor_finder/armor_finder.cpp b/armor/src/armor_finder/armor_finder.cpp index a5ee01f..0e59be3 100644 --- a/armor/src/armor_finder/armor_finder.cpp +++ b/armor/src/armor_finder/armor_finder.cpp @@ -28,9 +28,7 @@ ArmorFinder::ArmorFinder(uint8_t &color, Serial &u, const string ¶s_folder, contour_area(0), use_classifier(use), boxid(-1), - tracking_cnt(0), - miss_cnt(0), - weak_cnt(0) + tracking_cnt(0) { } @@ -44,16 +42,8 @@ void ArmorFinder::run(cv::Mat &src) { // stateSearchingTarget(src_use); // for debug // return; switch (state){ - case WEAKSEARCHING_STATE: - if(stateSearchingTarget(src_use) && ++weak_cnt>5){ - miss_cnt = 0; - state = SEARCHING_STATE; - }else{ - weak_cnt = 0; - } case SEARCHING_STATE: if(stateSearchingTarget(src_use)){ - miss_cnt = 0; if((armor_box & cv::Rect2d(0, 0, 640, 480)) == armor_box) { // 判断装甲板区域是否脱离图像区域 if(!classifier || !use_classifier){ /* 如果分类器不可用或者不使用分类器 */ cv::Mat roi = src_use.clone()(armor_box), roi_gray; /* 就使用装甲区域亮点数判断是否跟丢 */ @@ -67,14 +57,10 @@ void ArmorFinder::run(cv::Mat &src) { tracking_cnt = 0; LOGM(STR_CTR(WORD_LIGHT_CYAN, "into track")); } - }else if(++miss_cnt>100){ - weak_cnt = 0; - state = WEAKSEARCHING_STATE; } break; case TRACKING_STATE: if(!stateTrackingTarget(src_use) || ++tracking_cnt>100){ // 最多追踪100帧图像 - miss_cnt = 0; state = SEARCHING_STATE; LOGM(STR_CTR(WORD_LIGHT_YELLOW ,"into search!")); } diff --git a/armor/src/armor_finder/searching_state/searching_state.cpp b/armor/src/armor_finder/searching_state/searching_state.cpp index 6b692d0..9c10a5a 100644 --- a/armor/src/armor_finder/searching_state/searching_state.cpp +++ b/armor/src/armor_finder/searching_state/searching_state.cpp @@ -291,7 +291,7 @@ bool ArmorFinder::stateSearchingTarget(cv::Mat &src) { showArmorBoxVector("boxes", src, armor_boxes); cv::waitKey(1); } - if (classifier && use_classifier && state!=WEAKSEARCHING_STATE) { + if (classifier && use_classifier) { for (auto box : armor_boxes) { cv::Mat roi = src(box).clone(); cv::resize(roi, roi, cv::Size(48, 36)); From 60747629a0e3b7f26c17ceccbf6398fa50898c5f Mon Sep 17 00:00:00 2001 From: xinyang <895639507@qq.com> Date: Tue, 9 Jul 2019 18:45:22 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=EF=BD=8C=EF=BD=8F?= =?UTF-8?q?=EF=BD=87=EF=BD=8F=E5=9B=BE=E6=A1=88=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/main.cpp b/main.cpp index 9f2d72f..a89f956 100644 --- a/main.cpp +++ b/main.cpp @@ -1,6 +1,12 @@ -// -// Created by xixiliadorabarry on 1/24/19. -// +/*******************************************************************/ +/* ____ _ _____ _ _ ____ __ __ ______ __ */ +/*/ ___| | |_ _| | | | | _ \| \/ | / ___\ \ / / */ +/*\___ \ _ | | | | | | | |_____| |_) | |\/| |_____| | \ \ / / */ +/* ___) | |_| | | | | |_| |_____| _ <| | | |_____| |___ \ V / */ +/*|____/ \___/ |_| \___/ |_| \_\_| |_| \____| \_/ */ +/* */ +/*******************************************************************/ + #include #include #include From b545b4d71291dcd690e3c2505651968cdca4dda6 Mon Sep 17 00:00:00 2001 From: xinyang <895639507@qq.com> Date: Tue, 9 Jul 2019 19:02:00 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=EF=BD=8C=EF=BD=8F?= =?UTF-8?q?=EF=BD=87=EF=BD=8F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- armor/src/armor_finder/armor_finder.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/armor/src/armor_finder/armor_finder.cpp b/armor/src/armor_finder/armor_finder.cpp index 0e59be3..a05b981 100644 --- a/armor/src/armor_finder/armor_finder.cpp +++ b/armor/src/armor_finder/armor_finder.cpp @@ -1,6 +1,20 @@ // // Created by xinyang on 19-3-27. // + +/*===========================================================================*/ +/* 使用本代码的兵种 */ +/*===========================================================================*/ +/* _______________ _______________ _______________ _______________ */ +/* | _____ | | _ _ | | ____ | | _____ | */ +/* || |___ / || || | || | || || | ___| || || |___ | || */ +/* || |_ \ || || | || |_ || || |___ \ || || / / || */ +/* || ___) | || || |__ _| || || ___) | || || / / || */ +/* || |____/ || || |_| || || |____/ || || /_/ || */ +/* |_______________| |_______________| |_______________| |_______________| */ +/* */ +/*===========================================================================*/ + #define LOG_LEVEL LOG_NONE #include #include