|
|
@ -205,7 +205,8 @@ MainWindow::MainWindow(QWidget* parent) |
|
|
|
_firstFrameEn = false; |
|
|
|
_discardTempTest = false; |
|
|
|
_discardAdcLog = false; |
|
|
|
_isDynamicContrast = false; |
|
|
|
_isScanConvDynamicCont = false; |
|
|
|
_isScanConversionScenario = false; |
|
|
|
_programFlag = true; |
|
|
|
_frameCount = 0; |
|
|
|
|
|
|
@ -1574,7 +1575,7 @@ void MainWindow::on_btn_dynConSetParams_clicked() |
|
|
|
/*************************************************************************************************/ |
|
|
|
void MainWindow::on_chk_dynamicContrast_clicked(bool checked) |
|
|
|
{ |
|
|
|
_isDynamicContrast = checked; |
|
|
|
_isScanConvDynamicCont = checked; |
|
|
|
} |
|
|
|
|
|
|
|
/*************************************************************************************************/ |
|
|
@ -1604,6 +1605,12 @@ void MainWindow::readDynamicContrastParameters(DynamicContrastParameters& params |
|
|
|
params.const_piecewise_x = piecewise_x; |
|
|
|
} |
|
|
|
|
|
|
|
/*************************************************************************************************/ |
|
|
|
void MainWindow::on_checkBox_clicked(bool checked) |
|
|
|
{ |
|
|
|
_isScanConversionScenario = checked; |
|
|
|
} |
|
|
|
|
|
|
|
/*************************************************************************************************/ |
|
|
|
/*********************************************DMA*************************************************/ |
|
|
|
/*************************************************************************************************/ |
|
|
@ -2143,6 +2150,15 @@ void MainWindow::on_btn_dmaShow_clicked() |
|
|
|
}while (_dmaShow); |
|
|
|
} |
|
|
|
|
|
|
|
/*************************************************************************************************/ |
|
|
|
quint32 MainWindow::frameDataCalc(QByteArray frame, qint32 index) |
|
|
|
{ |
|
|
|
return (( static_cast<quint32>(frame[index])) & 0x000000FF) | |
|
|
|
(((static_cast<quint32>(frame[index + 1])) << 8) & 0x0000FF00) | |
|
|
|
(((static_cast<quint32>(frame[index + 2])) << 16) & 0x00FF0000) | |
|
|
|
(((static_cast<quint32>(frame[index + 3])) << 24) & 0xFF000000); |
|
|
|
} |
|
|
|
|
|
|
|
/*************************************************************************************************/ |
|
|
|
void MainWindow::show3d() |
|
|
|
{ |
|
|
@ -2245,19 +2261,61 @@ void MainWindow::show3d() |
|
|
|
for(auto pnt = 0; pnt < (point + 1); pnt += 1) |
|
|
|
{ |
|
|
|
indx = (ln * point + pnt) * 4 + 160; |
|
|
|
auto val = ((static_cast<quint32>(plotPacket[indx])) & 0x000000FF) | |
|
|
|
(((static_cast<quint32>(plotPacket[indx + 1])) << 8) & 0x0000FF00) | |
|
|
|
(((static_cast<quint32>(plotPacket[indx + 2])) << 16) & 0x00FF0000) | |
|
|
|
(((static_cast<quint32>(plotPacket[indx + 3])) << 24) & 0xFF000000); |
|
|
|
auto val = frameDataCalc(plotPacket, indx); |
|
|
|
|
|
|
|
if(max < val) |
|
|
|
{ |
|
|
|
max = val; |
|
|
|
} |
|
|
|
|
|
|
|
if(_isDynamicContrast) |
|
|
|
if(_isScanConvDynamicCont) |
|
|
|
{ |
|
|
|
val = static_cast<quint32>(DynamicContrast(val, dynamicContrastParams)); |
|
|
|
float pixel = 0.0f; |
|
|
|
float queryX = 0.0f; |
|
|
|
float queryZ = 0.0f; |
|
|
|
|
|
|
|
if(static_cast<quint32>(pnt) < scanConversionParams.pixelZNo && |
|
|
|
static_cast<quint32>(ln) < scanConversionParams.pixelXNo) |
|
|
|
{ |
|
|
|
queryX = scanConversionParams.queryX.at(ln).at(pnt); |
|
|
|
queryZ = scanConversionParams.queryZ.at(ln).at(pnt); |
|
|
|
} |
|
|
|
QPair<qint32, qint32> index = readScanConversionIndex(queryX, queryZ, scanConversionParams); |
|
|
|
qint32 gridX_index = index.first; |
|
|
|
qint32 gridZ_index = index.second; |
|
|
|
|
|
|
|
if(gridX_index >= 0 && (gridX_index) < static_cast<qint32>(scanConversionParams.gridX_size - 1) && |
|
|
|
gridZ_index >= 0 && (gridZ_index) < static_cast<qint32>(scanConversionParams.gridZ_size - 1)) |
|
|
|
{ |
|
|
|
matrix.a11 = scanConversionParams.gridZ.at(gridZ_index + 1) - queryZ; |
|
|
|
matrix.a12 = queryZ - scanConversionParams.gridZ.at(gridZ_index); |
|
|
|
matrix.c11 = scanConversionParams.gridX.at(gridX_index + 1) - queryX; |
|
|
|
matrix.c12 = queryX - scanConversionParams.gridX.at(gridX_index); |
|
|
|
matrix.dx = scanConversionParams.dx; |
|
|
|
matrix.dz = scanConversionParams.dz; |
|
|
|
|
|
|
|
auto scanConIndex = (gridX_index * point + gridZ_index) * 4 + 160; |
|
|
|
auto scanConValue = frameDataCalc(plotPacket, scanConIndex); |
|
|
|
matrix.b11 = scanConValue; |
|
|
|
|
|
|
|
scanConIndex = ((gridX_index + 1) * point + gridZ_index) * 4 + 160; |
|
|
|
scanConValue = frameDataCalc(plotPacket, scanConIndex); |
|
|
|
matrix.b12 = scanConValue; |
|
|
|
|
|
|
|
scanConIndex = (gridX_index * point + (gridZ_index + 1)) * 4 + 160; |
|
|
|
scanConValue = frameDataCalc(plotPacket, scanConIndex); |
|
|
|
matrix.b21 = scanConValue; |
|
|
|
|
|
|
|
scanConIndex = ((gridX_index + 1) * point + (gridZ_index + 1)) * 4 + 160; |
|
|
|
scanConValue = frameDataCalc(plotPacket, scanConIndex); |
|
|
|
matrix.b22 = scanConValue; |
|
|
|
|
|
|
|
pixel = scanConversionFmaCalc(matrix); |
|
|
|
|
|
|
|
pixel = DynamicContrast(pixel, dynamicContrastParams); |
|
|
|
} |
|
|
|
|
|
|
|
val = static_cast<quint32>(pixel); |
|
|
|
} |
|
|
|
|
|
|
|
if(pnt == point) |
|
|
@ -2284,7 +2342,7 @@ void MainWindow::show3d() |
|
|
|
ui->plot_2->axisRect()->setMarginGroup(QCP::msBottom | QCP::msTop, marginGroup); |
|
|
|
colorScale->setMarginGroup(QCP::msBottom | QCP::msTop, marginGroup); |
|
|
|
} |
|
|
|
if(_isDynamicContrast) |
|
|
|
if(_isScanConvDynamicCont) |
|
|
|
{ |
|
|
|
_colorMap->setGradient((QCPColorGradient::gpGrayscale)); |
|
|
|
} |
|
|
@ -2901,6 +2959,11 @@ void MainWindow::setScenario(const QString& h5Path) |
|
|
|
_trx.setProbeDependParams(prbDepParams); |
|
|
|
//_trx.setLineFilterCoefficient(lineFilterLut);
|
|
|
|
_trx.setStbCoefficient(stbLut); |
|
|
|
|
|
|
|
if(_isScanConversionScenario) |
|
|
|
{ |
|
|
|
hdf.scanConversionParamsRead(scanConversionParams); |
|
|
|
} |
|
|
|
} |
|
|
|
catch(SonoException& e) |
|
|
|
{ |
|
|
|