energy changed a lot
This commit is contained in:
@@ -20,8 +20,7 @@
|
||||
using namespace std;
|
||||
using namespace cv;
|
||||
|
||||
extern WrapperHead *video_gimbal;
|
||||
extern WrapperHead *video_chassis;
|
||||
extern WrapperHead *video;
|
||||
|
||||
extern Serial serial;
|
||||
extern uint8_t last_state;
|
||||
@@ -74,102 +73,44 @@ cv::VideoWriter initVideoWriter(const std::string &filename_prefix) {
|
||||
return video;
|
||||
}
|
||||
|
||||
bool checkReconnect(bool is_camera_0_connect, bool is_camera_1_connect) {
|
||||
if (!is_camera_0_connect) {
|
||||
int curr_gain = ((CameraWrapper* )video_gimbal)->gain;
|
||||
int curr_exposure = ((CameraWrapper* )video_gimbal)->exposure;
|
||||
delete video_gimbal;
|
||||
video_gimbal = new CameraWrapper(curr_exposure, curr_gain, 0/*, "armor"*/);
|
||||
is_camera_0_connect = video_gimbal->init();
|
||||
}
|
||||
if (!is_camera_1_connect) {
|
||||
int curr_gain = ((CameraWrapper* )video_gimbal)->gain;
|
||||
int curr_exposure = ((CameraWrapper* )video_gimbal)->exposure;
|
||||
delete video_chassis;
|
||||
video_chassis = new CameraWrapper(curr_exposure, curr_gain, 0/*, "energy"*/);
|
||||
is_camera_1_connect = video_chassis->init();
|
||||
}
|
||||
return is_camera_0_connect && is_camera_1_connect;
|
||||
}
|
||||
|
||||
bool checkReconnect(bool is_camera_connect) {
|
||||
if (!is_camera_connect) {
|
||||
int curr_gain = ((CameraWrapper* )video_gimbal)->gain;
|
||||
int curr_exposure = ((CameraWrapper* )video_gimbal)->exposure;
|
||||
delete video_gimbal;
|
||||
video_gimbal = new CameraWrapper(curr_exposure, curr_gain, 0/*, "armor"*/);
|
||||
is_camera_connect = video_gimbal->init();
|
||||
int curr_gain = ((CameraWrapper* )video)->gain;
|
||||
int curr_exposure = ((CameraWrapper* )video)->exposure;
|
||||
delete video;
|
||||
video = new CameraWrapper(curr_exposure, curr_gain, 0/*, "armor"*/);
|
||||
is_camera_connect = video->init();
|
||||
}
|
||||
return is_camera_connect;
|
||||
}
|
||||
|
||||
auto gimbal_video_writer = initVideoWriter(PROJECT_DIR"/gimbal_video/");
|
||||
auto chassis_video_writer = initVideoWriter(PROJECT_DIR"/chassis_video/");
|
||||
|
||||
void saveVideos(const cv::Mat &gimbal_src, const cv::Mat &chassis_src) {
|
||||
if (!gimbal_src.empty() && !chassis_src.empty()) {
|
||||
gimbal_video_writer.write(gimbal_src);
|
||||
Mat chassis_save = chassis_src.clone();
|
||||
cvtColor(chassis_save, chassis_save, COLOR_GRAY2BGR);
|
||||
chassis_video_writer.write(chassis_save);
|
||||
} else if (!gimbal_src.empty() && chassis_src.empty()) {
|
||||
gimbal_video_writer.write(gimbal_src);
|
||||
} else if (gimbal_src.empty() && !chassis_src.empty()) {
|
||||
if (show_origin)imshow("src", gimbal_src);
|
||||
Mat chassis_save = chassis_src.clone();
|
||||
cvtColor(chassis_save, chassis_save, COLOR_GRAY2BGR);
|
||||
chassis_video_writer.write(chassis_save);
|
||||
} else return;
|
||||
}
|
||||
auto video_writer = initVideoWriter(PROJECT_DIR"/video/");
|
||||
|
||||
void saveVideos(const cv::Mat &gimbal_src) {
|
||||
if (!gimbal_src.empty()) {
|
||||
gimbal_video_writer.write(gimbal_src);
|
||||
video_writer.write(gimbal_src);
|
||||
} else return;
|
||||
}
|
||||
|
||||
void showOrigin(const cv::Mat &gimbal_src, const cv::Mat &chassis_src) {
|
||||
if (!gimbal_src.empty() && !chassis_src.empty()) {
|
||||
imshow("gimbal", gimbal_src);
|
||||
imshow("chassis", chassis_src);
|
||||
} else if (!gimbal_src.empty() && chassis_src.empty()) {
|
||||
imshow("gimbal", gimbal_src);
|
||||
} else if (gimbal_src.empty() && !chassis_src.empty()) {
|
||||
imshow("chassis", chassis_src);
|
||||
void showOrigin(const cv::Mat &src) {
|
||||
if (!src.empty()) {
|
||||
imshow("origin", src);
|
||||
} else return;
|
||||
cv::waitKey(1);
|
||||
}
|
||||
|
||||
void showOrigin(const cv::Mat &gimbal_src) {
|
||||
if (!gimbal_src.empty()) {
|
||||
imshow("gimbal", gimbal_src);
|
||||
} else return;
|
||||
cv::waitKey(1);
|
||||
}
|
||||
|
||||
void extract(cv::Mat &gimbal_src, cv::Mat &chassis_src) {
|
||||
if (!gimbal_src.empty() && !chassis_src.empty()) {
|
||||
extract(gimbal_src);
|
||||
extract(chassis_src);
|
||||
} else if (!gimbal_src.empty() && chassis_src.empty()) {
|
||||
extract(gimbal_src);
|
||||
} else if (gimbal_src.empty() && !chassis_src.empty()) {
|
||||
extract(chassis_src);
|
||||
} else return;
|
||||
}
|
||||
|
||||
void extract(cv::Mat &gimbal_src) {//图像预处理,将视频切成640×480的大小
|
||||
if (gimbal_src.empty()) return;
|
||||
float length = static_cast<float>(gimbal_src.cols);
|
||||
float width = static_cast<float>(gimbal_src.rows);
|
||||
void extract(cv::Mat &src) {//图像预处理,将视频切成640×480的大小
|
||||
if (src.empty()) return;
|
||||
float length = static_cast<float>(src.cols);
|
||||
float width = static_cast<float>(src.rows);
|
||||
if (length / width > 640.0 / 480.0) {
|
||||
length *= 480.0 / width;
|
||||
resize(gimbal_src, gimbal_src, cv::Size(length, 480));
|
||||
gimbal_src = gimbal_src(Rect((length - 640) / 2, 0, 640, 480));
|
||||
resize(src, src, cv::Size(length, 480));
|
||||
src = src(Rect((length - 640) / 2, 0, 640, 480));
|
||||
} else {
|
||||
width *= 640.0 / length;
|
||||
resize(gimbal_src, gimbal_src, cv::Size(640, width));
|
||||
gimbal_src = gimbal_src(Rect(0, (width - 480) / 2, 640, 480));
|
||||
resize(src, src, cv::Size(640, width));
|
||||
src = src(Rect(0, (width - 480) / 2, 640, 480));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user