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