Merge remote-tracking branch 'origin/master'
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -11,3 +11,4 @@ others/MV-UB31-Group0.config
|
||||
.DS_Store
|
||||
gimbal_video
|
||||
chassis_video
|
||||
test_video
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
10
main.cpp
10
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;
|
||||
|
||||
Reference in New Issue
Block a user