energy changed

This commit is contained in:
sun
2019-08-08 23:00:06 +08:00
parent faae07b5b3
commit bb2a088d38
7 changed files with 31 additions and 22 deletions

1
.gitignore vendored
View File

@@ -11,3 +11,4 @@ others/MV-UB31-Group0.config
.DS_Store .DS_Store
gimbal_video gimbal_video
chassis_video chassis_video
test_video

View File

@@ -99,24 +99,30 @@ void Energy::FlowStripFanStruct(cv::Mat &src) {
// --------------------------------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------------
void Energy::FlowStripStruct(cv::Mat &src) { void Energy::FlowStripStruct(cv::Mat &src) {
Mat element_dilate_1 = getStructuringElement(MORPH_RECT, Size(5, 5)); Mat element_dilate_1 = getStructuringElement(MORPH_RECT, Size(5, 5));
Mat element_erode_1 = getStructuringElement(MORPH_RECT, Size(3, 3)); Mat element_erode_1 = getStructuringElement(MORPH_RECT, Size(5, 5));
Mat element_dilate_2 = getStructuringElement(MORPH_RECT, Size(3, 3)); Mat element_dilate_2 = getStructuringElement(MORPH_RECT, Size(2, 2));
Mat element_erode_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_dilate_3 = getStructuringElement(MORPH_RECT, Size(2, 2));
Mat element_erode_3 = getStructuringElement(MORPH_RECT, Size(1 , 1)); 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); // imshow("dilate_1", src);
erode(src,src, element_erode_1); erode(src,src, element_erode_1);
// imshow("erode_1", src); imshow("erode_1", src);
erode(src,src, element_erode_2); // erode(src,src, element_erode_2);
// imshow("erode_2", src); // imshow("erode_2", src);
erode(src,src, element_erode_3); // erode(src,src, element_erode_3);
// imshow("erode_3", src); // imshow("erode_3", src);
// dilate(src, src, element_dilate_2); dilate(src, src, element_dilate_1);
// imshow("dilate_2", src); // imshow("dilate_1", src);
dilate(src, src, element_dilate_2);
imshow("dilate_2", src);
// dilate(src, src, element_dilate_3); // dilate(src, src, element_dilate_3);
// imshow("dilate_3", src); // imshow("dilate_3", src);
// dilate(src, src, element_dilate_4);
// imshow("dilate_4", src);
} }

View File

@@ -35,5 +35,5 @@ void Energy::initImage(cv::Mat &src) {
threshold(src, src, energy_part_param_.BLUE_GRAY_THRESH, 255, THRESH_BINARY); threshold(src, src, energy_part_param_.BLUE_GRAY_THRESH, 255, THRESH_BINARY);
} }
if (show_process)imshow("bin", src); if (show_process)imshow("bin", src);
if (show_energy)waitKey(1); if (show_energy || show_process)waitKey(1);
} }

View File

@@ -83,7 +83,7 @@ void Energy::initEnergy() {
void Energy::initEnergyPartParam() { void Energy::initEnergyPartParam() {
// gimbal_energy_part_param_.GRAY_THRESH = 120;//home // gimbal_energy_part_param_.GRAY_THRESH = 120;//home
// gimbal_energy_part_param_.GRAY_THRESH = 200;//official // 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_.BLUE_GRAY_THRESH = 100;//game
gimbal_energy_part_param_.SPLIT_GRAY_THRESH = 180; gimbal_energy_part_param_.SPLIT_GRAY_THRESH = 180;
gimbal_energy_part_param_.FAN_GRAY_THRESH = 75; 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_MIN = 32;
gimbal_energy_part_param_.FLOW_STRIP_CONTOUR_LENGTH_MAX = 55; 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_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_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_AREA_RATIO_MIN = 0.6;
gimbal_energy_part_param_.FLOW_STRIP_CONTOUR_INTERSETION_AREA_MIN = 100; gimbal_energy_part_param_.FLOW_STRIP_CONTOUR_INTERSETION_AREA_MIN = 100;

View File

@@ -417,7 +417,7 @@ bool Energy::findCenterROI(const cv::Mat src) {
flow_strip.center.y - target_point.y); flow_strip.center.y - target_point.y);
p2p = p2p / pointDistance(flow_strip.center, target_point);//单位化 p2p = p2p / pointDistance(flow_strip.center, target_point);//单位化
center_ROI = cv::RotatedRect(cv::Point2f(flow_strip.center + p2p * length * 1.7), 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; return true;
} }

View File

@@ -76,7 +76,7 @@ bool Energy::findTargetInFlowStripFan() {
// waitKey(); // waitKey();
// cout << "target armor cnt: " << target_armors.size() << endl; // cout << "target armor cnt: " << target_armors.size() << endl;
if (target_armors.empty()) { if (target_armors.empty()) {
if (show_info)cout << "t6find target armor false" << endl; if (show_info)cout << "find target armor false" << endl;
return false; return false;
} else { } else {
return true; return true;

View File

@@ -30,10 +30,10 @@ using namespace std;
McuData mcu_data = { // 单片机端回传结构体 McuData mcu_data = { // 单片机端回传结构体
0, // 当前云台yaw角 0, // 当前云台yaw角
0, // 当前云台pitch角 0, // 当前云台pitch角
ARMOR_STATE, // 当前状态,自瞄-大符-小符 BIG_ENERGY_STATE, // 当前状态,自瞄-大符-小符
0, // 云台角度标记位 0, // 云台角度标记位
1, // 是否启用数字识别 1, // 是否启用数字识别
ENEMY_RED, // 敌方颜色 ENEMY_BLUE, // 敌方颜色
0, // 能量机关x轴补偿量 0, // 能量机关x轴补偿量
0, // 能量机关y轴补偿量 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_gimbal = new CameraWrapper(ARMOR_CAMERA_EXPOSURE, ARMOR_CAMERA_GAIN, 2/*, "armor"*/);
video_chassis = new CameraWrapper(ENERGY_CAMERA_EXPOSURE, ENERGY_CAMERA_GAIN, 2/*, "energy"*/); video_chassis = new CameraWrapper(ENERGY_CAMERA_EXPOSURE, ENERGY_CAMERA_GAIN, 2/*, "energy"*/);
} else { } else {
video_gimbal = 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"/8-7-NO7.avi"); video_chassis = new VideoWrapper(PROJECT_DIR"/test_video/blue_small.avi");
} }
if (video_gimbal->init()) { if (video_gimbal->init()) {
LOGM("video_gimbal source initialization successfully."); LOGM("video_gimbal source initialization successfully.");
@@ -182,7 +182,7 @@ int main(int argc, char *argv[]) {
armor_finder.run(gimbal_src); armor_finder.run(gimbal_src);
}); });
} }
// cv::waitKey(0); cv::waitKey(0);
}); });
} while (ok); } while (ok);
delete video_gimbal; delete video_gimbal;