1、光谱bin2 hdr文件中的波长信息;
2、第一次运行创建配置文件时,添加推流配置;
This commit is contained in:
tangchao0503
2024-12-03 20:15:42 +08:00
parent e8760dcfe5
commit faf83b2545
3 changed files with 14 additions and 50 deletions

View File

@ -96,7 +96,7 @@ void XimeaImager::openImger()
}
float gain, offset;//用于生成头文件中的波长信息
ret = m_configfile.getGainOffsetOfSpectralBin1(gain, offset);
ret = m_configfile.getGainOffset(gain, offset);
if (ret)
{
m_imager.setGainOffset(gain, offset);
@ -509,24 +509,9 @@ double XimeaImager::geWavelengthAtBand(int x)
void XimeaImager::getRgbBandNumber(int &redBandNumber, int &greenBandNumber, int &blueBandNumber)
{
vector<double> wavelengths;
if (m_imager.getSpectralBin() == 1)
for (int i = getWindowStartBand(); i < getWindowEndBand(); i++)
{
for (int i = getWindowStartBand(); i < getWindowEndBand(); i++)
{
wavelengths.push_back(geWavelengthAtBand(i));
}
}
else if (m_imager.getSpectralBin() == 2)
{
for (int i = m_iOffsetyOfSpectralBin2; i < m_iOffsetyOfSpectralBin2 + m_iHeightOfSpectralBin2; i++)
{
if (i*2 + 1 > m_iOffsetyOfSpectralBin1 + m_iHeightOfSpectralBin1)
{
printf("XimeaImager::writeHdr 出现错误:窗口中,光谱 bin1 波段数小于 bin2 的 2 倍。\n");
break;
}
wavelengths.push_back((geWavelengthAtBand(i*2) + geWavelengthAtBand(i*2 + 1)) / 2);
}
wavelengths.push_back(geWavelengthAtBand(i));
}
//envi打开文件时的红绿蓝波长nm
@ -801,41 +786,16 @@ void XimeaImager::writeHdr()
hdrFileHandle << "wavelength = {";
//hdrFileHandle << std::setprecision(5);
if (m_imager.getSpectralBin() == 1)
for (int i = getWindowStartBand(); i < getWindowEndBand(); i++)
{
for (int i = getWindowStartBand(); i < getWindowEndBand(); i++)
hdrFileHandle << geWavelengthAtBand(i);
if (i < getWindowEndBand() - 1)
hdrFileHandle << ", ";
else
{
hdrFileHandle << geWavelengthAtBand(i);
if (i < getWindowEndBand() - 1)
hdrFileHandle << ", ";
else
{
printf("头文件中写入了多少个波段:%d\n",i-getWindowStartBand()+1);//???????????????
}
printf("头文件中写入了多少个波段:%d\n",i-getWindowStartBand()+1);//???????????????
}
}
else if (m_imager.getSpectralBin() == 2)
{
int counter = 0;
for (int i = m_iOffsetyOfSpectralBin2; i < m_iOffsetyOfSpectralBin2 + m_iHeightOfSpectralBin2; i++)
{
if (i*2 + 1 > m_iOffsetyOfSpectralBin1 + m_iHeightOfSpectralBin1)
{
printf("XimeaImager::writeHdr 出现错误:窗口中,光谱 bin1 波段数小于 bin2 的 2 倍。\n");
break;
}
hdrFileHandle << (geWavelengthAtBand(i*2) + geWavelengthAtBand(i*2 + 1)) / 2;
counter++;
if (i < m_iOffsetyOfSpectralBin2 + m_iHeightOfSpectralBin2 - 1)
hdrFileHandle << ", ";
else
{
printf("头文件中写入了多少个波段:%d\n", counter);
}
}
}
hdrFileHandle << "}\n";
hdrFileHandle.close();