fix:
1、暗电流/白板都是550帧平均,采集白板时电机会运动; 2、文件名后加bil后缀; 3、航迹规划小数点从2位改为5位;
This commit is contained in:
@ -1662,6 +1662,10 @@ void HPPA::onconnect()
|
||||
connect(this->ui.action_start_recording, SIGNAL(triggered()), this, SLOT(onStartRecordStep1()));
|
||||
connect(this, SIGNAL(StartLoopSignal()), m_ForLoopControl, SLOT(startLoop()));
|
||||
connect(this, SIGNAL(StartRecordSignal()), m_Imager, SLOT(start_record()));
|
||||
connect(this, SIGNAL(RecordWhiteSignal()), m_Imager, SLOT(record_white()));
|
||||
connect(this, SIGNAL(RecordDarlSignal()), m_Imager, SLOT(record_dark()));
|
||||
connect(m_Imager, SIGNAL(RecordWhiteFinishSignal()), this, SLOT(recordWhiteFinish()));
|
||||
connect(m_Imager, SIGNAL(RecordDarlFinishSignal()), this, SLOT(recordDarkFinish()));
|
||||
|
||||
connect(this->ui.actionOpenDirectory, SIGNAL(triggered()), this, SLOT(onActionOpenDirectory()));
|
||||
|
||||
@ -1789,8 +1793,12 @@ void HPPA::onDark()
|
||||
QMessageBox msgBox;
|
||||
msgBox.setText(QString::fromLocal8Bit("<EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>Ǹ<EFBFBD><EFBFBD>ϣ<EFBFBD>"));
|
||||
msgBox.exec();
|
||||
m_Imager->record_dark();
|
||||
|
||||
emit RecordDarlSignal();
|
||||
}
|
||||
|
||||
void HPPA::recordDarkFinish()
|
||||
{
|
||||
ui.mainToolBar->widgetForAction(ui.action_dark)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
||||
}
|
||||
|
||||
@ -1799,9 +1807,32 @@ void HPPA::onReference()
|
||||
QMessageBox msgBox;
|
||||
msgBox.setText(QString::fromLocal8Bit("<EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD>"));
|
||||
msgBox.exec();
|
||||
m_Imager->record_white();
|
||||
|
||||
//<2F>ƶ<EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD>
|
||||
if (!isMotorConnected(m_xMotor))
|
||||
{
|
||||
m_xMotor->EnableMotro();
|
||||
m_lXmotorLocationOfStartRecord = m_xMotor->GetLocationNow();
|
||||
m_xMotor->SettingSpeed(ui.xmotor_speed_slider->OriginalValue());
|
||||
//m_xMotor->SettingSpeed(m_lManualSpeedOfXMotor);
|
||||
|
||||
m_xMotor->MoveMotar(true);
|
||||
}
|
||||
|
||||
emit RecordWhiteSignal();
|
||||
}
|
||||
|
||||
void HPPA::recordWhiteFinish()
|
||||
{
|
||||
ui.mainToolBar->widgetForAction(ui.action_reference)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
|
||||
|
||||
//<2F>ƶ<EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD>
|
||||
if (!isMotorConnected(m_xMotor))
|
||||
{
|
||||
//x<><78><EFBFBD>ﷵ<EFBFBD>زɼ<D8B2>ǰ<EFBFBD><C7B0>λ<EFBFBD><CEBB>
|
||||
m_xMotor->SettingSpeed(m_lManualSpeedOfXMotor);
|
||||
m_xMotor->MoveToLocation(m_lXmotorLocationOfStartRecord);
|
||||
}
|
||||
}
|
||||
|
||||
void HPPA::onPlotHyperspectralImageRgbImage()
|
||||
|
@ -256,7 +256,9 @@ public Q_SLOTS:
|
||||
void onFocus2(int command);
|
||||
void onAbout();
|
||||
void onDark();
|
||||
void recordDarkFinish();
|
||||
void onReference();
|
||||
void recordWhiteFinish();
|
||||
void onStartRecordStep1();
|
||||
void onStartRecordStep2(int lineNumber);
|
||||
void onCreateTab(int trackNumber);
|
||||
@ -336,5 +338,7 @@ signals:
|
||||
void StartRecordSignal();
|
||||
void CopyFileThreadSignal(QString, QString);
|
||||
|
||||
void RecordWhiteSignal();
|
||||
void RecordDarlSignal();
|
||||
};
|
||||
|
||||
|
@ -111,17 +111,59 @@ void ImagerOperationBase::record_dark()
|
||||
{
|
||||
std::cout << "<EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << std::endl;
|
||||
imagerStartCollect();
|
||||
getFrame(dark);
|
||||
|
||||
unsigned int* dark_tmp = new unsigned int[m_FrameSize];
|
||||
std::fill(dark_tmp, dark_tmp + m_FrameSize, 0);
|
||||
|
||||
int counter = 50;
|
||||
for (size_t i = 0; i < counter; i++)
|
||||
{
|
||||
getFrame(dark);
|
||||
|
||||
for (size_t j = 0; j < m_FrameSize; j++)
|
||||
{
|
||||
dark_tmp[j] = dark[j] + dark_tmp[j];
|
||||
}
|
||||
}
|
||||
|
||||
for (size_t j = 0; j < m_FrameSize; j++)
|
||||
{
|
||||
dark[j] = (unsigned short)(dark_tmp[j] / counter);
|
||||
}
|
||||
delete[] dark_tmp;
|
||||
|
||||
imagerStopCollect();
|
||||
|
||||
m_HasDark = true;
|
||||
|
||||
emit RecordDarlFinishSignal();
|
||||
}
|
||||
|
||||
void ImagerOperationBase::record_white()
|
||||
{
|
||||
std::cout << "<EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ壡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << std::endl;
|
||||
std::cout << "<EFBFBD>ɼ<EFBFBD><EFBFBD>װ壡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << std::endl;
|
||||
imagerStartCollect();
|
||||
getFrame(white);
|
||||
|
||||
unsigned int* white_tmp = new unsigned int[m_FrameSize];
|
||||
std::fill(white_tmp, white_tmp + m_FrameSize, 0);
|
||||
|
||||
int counter = 50;
|
||||
for (size_t i = 0; i < counter; i++)
|
||||
{
|
||||
getFrame(white);
|
||||
|
||||
for (size_t j = 0; j < m_FrameSize; j++)
|
||||
{
|
||||
white_tmp[j] = white[j] + white_tmp[j];
|
||||
}
|
||||
}
|
||||
|
||||
for (size_t j = 0; j < m_FrameSize; j++)
|
||||
{
|
||||
white[j] = (unsigned short)(white_tmp[j] / counter);
|
||||
}
|
||||
delete[] white_tmp;
|
||||
|
||||
imagerStopCollect();
|
||||
|
||||
//<2F>װ<EFBFBD><D7B0>۰<EFBFBD><DBB0><EFBFBD><EFBFBD><EFBFBD>
|
||||
@ -141,6 +183,8 @@ void ImagerOperationBase::record_white()
|
||||
}
|
||||
|
||||
m_HasWhite = true;
|
||||
|
||||
emit RecordWhiteFinishSignal();
|
||||
}
|
||||
|
||||
void ImagerOperationBase::start_record()
|
||||
|
@ -97,6 +97,9 @@ signals:
|
||||
void RecordFinishedSignal_WhenFrameNumberNotMeet();//<2F>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>źţ<C5BA><C5A3><EFBFBD>Ҫ<EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>m_iFrameNumber<65><72>û<EFBFBD>вɼ<D0B2><C9BC><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3><EFBFBD>;ֹͣ<CDA3>ɼ<EFBFBD>
|
||||
void SpectralSignal(int);//<2F><><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƹ<EFBFBD><C6B9>ף<EFBFBD><D7A3><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD>
|
||||
|
||||
void RecordWhiteFinishSignal();
|
||||
void RecordDarlFinishSignal();
|
||||
|
||||
|
||||
void testImagerStatus();//<2F><>ʾ<EFBFBD><CABE><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ӣ<EFBFBD><D3A3><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
|
@ -294,7 +294,7 @@ void PathPlan::onReadRecordLineFile_btn()
|
||||
{
|
||||
for (size_t j = 0; j < ui.recordLine_tableWidget->columnCount(); j++)
|
||||
{
|
||||
QTableWidgetItem* tmp = new QTableWidgetItem(QString::number(data[i * ui.recordLine_tableWidget->columnCount() + j], 10, 2));
|
||||
QTableWidgetItem* tmp = new QTableWidgetItem(QString::number(data[i * ui.recordLine_tableWidget->columnCount() + j], 10, 5));
|
||||
tmp->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
|
||||
ui.recordLine_tableWidget->setItem(i, j, tmp);
|
||||
}
|
||||
|
@ -191,18 +191,60 @@ void ResononNirImager::record_dark()
|
||||
std::cout << "<EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << std::endl;
|
||||
reConnectImage();
|
||||
imagerStartCollect();
|
||||
getFrame(dark);
|
||||
|
||||
unsigned int* dark_tmp = new unsigned int[m_FrameSize];
|
||||
std::fill(dark_tmp, dark_tmp + m_FrameSize, 0);
|
||||
|
||||
int counter = 50;
|
||||
for (size_t i = 0; i < counter; i++)
|
||||
{
|
||||
getFrame(dark);
|
||||
|
||||
for (size_t j = 0; j < m_FrameSize; j++)
|
||||
{
|
||||
dark_tmp[j] = dark[j] + dark_tmp[j];
|
||||
}
|
||||
}
|
||||
|
||||
for (size_t j = 0; j < m_FrameSize; j++)
|
||||
{
|
||||
dark[j] = (unsigned short)(dark_tmp[j] / counter);
|
||||
}
|
||||
delete[] dark_tmp;
|
||||
|
||||
imagerStopCollect();
|
||||
|
||||
m_HasDark = true;
|
||||
|
||||
emit RecordDarlFinishSignal();
|
||||
}
|
||||
|
||||
void ResononNirImager::record_white()
|
||||
{
|
||||
std::cout << "<EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ壡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << std::endl;
|
||||
std::cout << "<EFBFBD>ɼ<EFBFBD><EFBFBD>װ壡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << std::endl;
|
||||
reConnectImage();
|
||||
imagerStartCollect();
|
||||
getFrame(white);
|
||||
|
||||
unsigned int* white_tmp = new unsigned int[m_FrameSize];
|
||||
std::fill(white_tmp, white_tmp + m_FrameSize, 0);
|
||||
|
||||
int counter = 50;
|
||||
for (size_t i = 0; i < counter; i++)
|
||||
{
|
||||
getFrame(white);
|
||||
|
||||
for (size_t j = 0; j < m_FrameSize; j++)
|
||||
{
|
||||
white_tmp[j] = white[j] + white_tmp[j];
|
||||
}
|
||||
}
|
||||
|
||||
for (size_t j = 0; j < m_FrameSize; j++)
|
||||
{
|
||||
white[j] = (unsigned short)(white_tmp[j] / counter);
|
||||
}
|
||||
delete[] white_tmp;
|
||||
|
||||
imagerStopCollect();
|
||||
|
||||
//<2F>װ<EFBFBD><D7B0>۰<EFBFBD><DBB0><EFBFBD><EFBFBD><EFBFBD>
|
||||
@ -222,6 +264,8 @@ void ResononNirImager::record_white()
|
||||
}
|
||||
|
||||
m_HasWhite = true;
|
||||
|
||||
emit RecordWhiteFinishSignal();
|
||||
}
|
||||
|
||||
void ResononNirImager::start_record()
|
||||
@ -243,7 +287,7 @@ void ResononNirImager::start_record()
|
||||
|
||||
FileOperation* fileOperation = new FileOperation();
|
||||
string directory = fileOperation->getDirectoryFromString();
|
||||
string imgPath = directory + "\\" + m_FileName2Save + "_" + std::to_string(m_FileSavedCounter);
|
||||
string imgPath = directory + "\\" + m_FileName2Save + "_" + std::to_string(m_FileSavedCounter)+".bil";
|
||||
|
||||
FILE* m_fImage = fopen(imgPath.c_str(), "w+b");
|
||||
|
||||
|
@ -70,7 +70,7 @@
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>版本:1.8.1</string>
|
||||
<string>版本:1.8.2</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_4">
|
||||
|
Reference in New Issue
Block a user