分离曝光,参数更新,取消反陀螺,数据增强。

This commit is contained in:
xinyang
2019-08-06 11:54:48 +08:00
parent 7337f10123
commit 9392c201db
20 changed files with 41259 additions and 17856 deletions

View File

@@ -41,8 +41,9 @@ private:
RoundQueue<cv::Mat, 2> src_queue;
public:
int gain;
int exposure;
CameraWrapper(int gain, int camera_mode=1, const std::string &n="NULL");
CameraWrapper(int exposure, int gain, int camera_mode=1, const std::string &n="NULL");
~CameraWrapper() final;
bool init() final;

View File

@@ -8,8 +8,12 @@
#warning "Without config.h"
#endif
#ifndef CAMERA_EXPOSURE
#define CAMERA_EXPOSURE (10)
#ifndef ARMOR_CAMERA_EXPOSURE
#define ARMOR_CAMERA_EXPOSURE (10)
#endif
#ifndef ENERGY_CAMERA_EXPOSURE
#define ENERGY_CAMERA_EXPOSURE (10)
#endif
#ifndef CAMERA_RED_GAIN

View File

@@ -77,14 +77,16 @@ cv::VideoWriter initVideoWriter(const std::string &filename_prefix) {
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_gain, 0/*, "armor"*/);
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_gain, 0/*, "energy"*/);
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;
@@ -93,8 +95,9 @@ bool checkReconnect(bool is_camera_0_connect, bool 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_gain, 0/*, "armor"*/);
video_gimbal = new CameraWrapper(curr_exposure, curr_gain, 0/*, "armor"*/);
is_camera_connect = video_gimbal->init();
}
return is_camera_connect;

View File

@@ -11,7 +11,7 @@
using namespace std;
using namespace cv;
CameraWrapper::CameraWrapper(int gain, int camera_mode, const std::string &n) :
CameraWrapper::CameraWrapper(int exposure, int gain, int camera_mode, const std::string &n) :
name(n),
init_done(false),
mode(camera_mode),
@@ -20,7 +20,8 @@ CameraWrapper::CameraWrapper(int gain, int camera_mode, const std::string &n) :
iplImage(nullptr),
rgb_buffer(nullptr),
channel(3),
gain(gain){
gain(gain),
exposure(exposure){
}
void cameraCallback(CameraHandle hCamera, BYTE *pFrameBuffer, tSdkFrameHead* pFrameHead,PVOID pContext){
@@ -85,7 +86,7 @@ bool CameraWrapper::init() {
CameraReadParameterFromFile(h_camera, PROJECT_DIR"/others/MV-UB31-Group0.config");
CameraLoadParameter(h_camera, PARAMETER_TEAM_A);
CameraSetAeState(h_camera, false);
CameraSetExposureTime(h_camera, CAMERA_EXPOSURE * 1000);
CameraSetExposureTime(h_camera, exposure * 1000);
CameraSetAnalogGain(h_camera, gain);
#endif
double t;