fix bug.
This commit is contained in:
@@ -3,7 +3,12 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.5)
|
||||
PROJECT(AutoAim)
|
||||
SET(CMAKE_CXX_STANDARD 11)
|
||||
SET(CMAKE_BUILD_TYPE RELEASE)
|
||||
SET(CMAKE_CXX_FLAGS "-DPATH=\"\\\"${PROJECT_SOURCE_DIR}\\\"\"")
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3")
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DPATH=\"\\\"${PROJECT_SOURCE_DIR}\\\"\"")
|
||||
## 使用编译期固定选项,以略微提升性能。
|
||||
#SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DFIX_OPTIONS")
|
||||
## 固定使用相机运行
|
||||
#SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DRUN_WITH_CAMERA")
|
||||
|
||||
FIND_PROGRAM(CCACHE_FOUND ccache)
|
||||
IF(CCACHE_FOUND)
|
||||
|
||||
@@ -57,7 +57,7 @@ void ArmorFinder::run(cv::Mat &src) {
|
||||
}
|
||||
}
|
||||
|
||||
#define FOCUS_PIXAL (800)
|
||||
#define FOCUS_PIXAL (600)
|
||||
|
||||
bool ArmorFinder::sendBoxPosition() {
|
||||
static int dx_add = 0;
|
||||
@@ -68,7 +68,7 @@ bool ArmorFinder::sendBoxPosition() {
|
||||
double dy = rect.y + rect.height/2 - 240 - 30;
|
||||
double yaw = atan(dx / FOCUS_PIXAL) * 180 / 3.14159265459;
|
||||
double pitch = atan(dy / FOCUS_PIXAL) * 180 / 3.14159265459;
|
||||
cout << yaw << endl;
|
||||
// cout << yaw << endl;
|
||||
uart.sendTarget(yaw, -pitch, 0);
|
||||
return true;
|
||||
}
|
||||
13
main.cpp
13
main.cpp
@@ -36,7 +36,7 @@ void uartReceive(Uart *uart);
|
||||
int main(int argc, char *argv[]) {
|
||||
process_options(argc, argv);
|
||||
Uart uart;
|
||||
// thread receive(uartReceive, &uart);
|
||||
thread receive(uartReceive, &uart);
|
||||
bool flag = true;
|
||||
|
||||
while (flag) {
|
||||
@@ -52,7 +52,7 @@ int main(int argc, char *argv[]) {
|
||||
WrapperHead *video_armor;
|
||||
WrapperHead *video_energy;
|
||||
if (from_camera) {
|
||||
video_armor = new CameraWrapper(0);
|
||||
video_armor = new CameraWrapper(0, "armor");
|
||||
// video_energy = new CameraWrapper(1, "energy");
|
||||
} else {
|
||||
video_armor = new VideoWrapper("/home/xinyang/Desktop/DataSets/video/blue_4.mp4");
|
||||
@@ -63,13 +63,18 @@ int main(int argc, char *argv[]) {
|
||||
}
|
||||
|
||||
Mat energy_src, armor_src;
|
||||
for(int i=0; i<10; i++){
|
||||
video_armor->read(armor_src);
|
||||
// video_energy->read(armor_src);
|
||||
}
|
||||
|
||||
ArmorFinder armorFinder(ENEMY_BLUE, uart, PROJECT_DIR"/tools/para/");
|
||||
|
||||
Energy energy(uart);
|
||||
energy.setAllyColor(ally_color);
|
||||
energy.setRotation(energy_part_rotation);
|
||||
|
||||
bool ok = true;
|
||||
bool ok = video_armor->read(armor_src) /*&& video_energy->read(armor_src)*/;
|
||||
|
||||
while (ok) {
|
||||
CNT_TIME(WORD_LIGHT_CYAN, "Total", {
|
||||
@@ -104,7 +109,7 @@ int main(int argc, char *argv[]) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define RECEIVE_LOG_LEVEL LOG_NOTHING
|
||||
#define RECEIVE_LOG_LEVEL LOG_MSG
|
||||
|
||||
void uartReceive(Uart *uart) {
|
||||
char buffer[100];
|
||||
|
||||
@@ -5,6 +5,55 @@
|
||||
#ifndef _OPTIONS_H_
|
||||
#define _OPTIONS_H_
|
||||
|
||||
#ifdef FIX_OPTIONS
|
||||
#ifdef SHOW_ARMOR_BOX
|
||||
#define show_armor_box true
|
||||
#else
|
||||
#define show_armor_box false
|
||||
#endif
|
||||
|
||||
#ifdef SHOW_ARMOR_BOXES
|
||||
#define show_armor_boxes true
|
||||
#else
|
||||
#define show_armor_boxes false
|
||||
#endif
|
||||
|
||||
#ifdef SHOW_LIGHT_BLOBS
|
||||
#define show_light_blobs true
|
||||
#else
|
||||
#define show_light_blobs false
|
||||
#endif
|
||||
|
||||
#ifdef SHOW_ORIGIN
|
||||
#define show_origin true
|
||||
#else
|
||||
#define show_origin false
|
||||
#endif
|
||||
|
||||
#ifdef SAVE_LABELLED
|
||||
#define save_labelled true
|
||||
#else
|
||||
#define save_labelled false
|
||||
#endif
|
||||
|
||||
#ifdef RUN_WITH_CAMERA
|
||||
#define run_with_camera true
|
||||
#else
|
||||
#define run_with_camera false
|
||||
#endif
|
||||
|
||||
#ifdef SAVE_VIDEO
|
||||
#define save_video true
|
||||
#else
|
||||
#define save_video false
|
||||
#endif
|
||||
|
||||
#ifdef COLLECT_DATA
|
||||
#define collect_data true
|
||||
#else
|
||||
#define collect_data false
|
||||
#endif
|
||||
#else /* FIX_OPTIONS */
|
||||
extern bool show_armor_box;
|
||||
extern bool show_armor_boxes;
|
||||
extern bool show_light_blobs;
|
||||
@@ -13,6 +62,7 @@ extern bool save_labelled;
|
||||
extern bool run_with_camera;
|
||||
extern bool save_video;
|
||||
extern bool collect_data;
|
||||
#endif /* FIX_OPTIONS */
|
||||
|
||||
void process_options(int argc, char *argv[]);
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@ stop:
|
||||
CameraGetExposureTime(h_camera, &t);
|
||||
LOGM("Exposure time: %lfms", t/1000.0);
|
||||
// 模拟增益4
|
||||
CameraSetAnalogGain(h_camera, 55);
|
||||
CameraSetAnalogGain(h_camera, 60);
|
||||
// 使用预设LUT表
|
||||
CameraSetLutMode(h_camera, LUTMODE_PRESET);
|
||||
// 抗频闪
|
||||
|
||||
@@ -35,6 +35,8 @@ void save_video_file(cv::Mat &src){
|
||||
|
||||
#define SAVE_DIR "/home/sjturm/Desktop/labelled/"
|
||||
|
||||
bool save_label_error_flag = false;
|
||||
|
||||
int get_labelled_cnt(){
|
||||
FILE *fp = fopen(SAVE_DIR"info.txt", "r");
|
||||
int cnt=0;
|
||||
@@ -50,6 +52,7 @@ void save_labelled_cnt(int cnt){
|
||||
}
|
||||
|
||||
void save_labelled_image(cv::Mat &src, cv::Rect2d box){
|
||||
if(!save_label_error_flag) {
|
||||
static int cnt = get_labelled_cnt();
|
||||
char name[50];
|
||||
sprintf(name, SAVE_DIR"%d.jpg", cnt);
|
||||
@@ -58,10 +61,11 @@ void save_labelled_image(cv::Mat &src, cv::Rect2d box){
|
||||
FILE *fp = fopen(name, "w");
|
||||
if (fp == NULL) {
|
||||
LOGW("Can't create file: %s!\nStop saving!", name);
|
||||
save_labelled = false;
|
||||
save_label_error_flag = true;
|
||||
return;
|
||||
}
|
||||
fprintf(fp, "%lf %lf %lf %lf\n", box.x, box.y, box.width, box.height);
|
||||
fclose(fp);
|
||||
save_labelled_cnt(cnt);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include <log.h>
|
||||
#include <cstring>
|
||||
|
||||
#ifndef FIX_OPTIONS
|
||||
bool show_armor_box = false;
|
||||
bool show_armor_boxes = false;
|
||||
bool show_light_blobs = false;
|
||||
@@ -66,3 +67,6 @@ void process_options(int argc, char *argv[]){
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
void process_options(int argc, char *argv[]){};
|
||||
#endif /* FIX_OPTIONS */
|
||||
|
||||
Reference in New Issue
Block a user