version 1.5

(1) calib模块系数由Kx0Kx1,Ky0Ky1调整为Kx0Ky0, Kx1Ky1
  (2) compute3D模块double型输入参数修改为float型。内部仍然按double型计算
This commit is contained in:
jerryzeng 2025-11-18 00:07:05 +08:00
parent a3bdcc24c9
commit 34db2009da
5 changed files with 44 additions and 35 deletions

View File

@ -177,9 +177,9 @@ void calib(
//ky = InData.calibK[1];
dataConver_x.dData = InData.calibK[0];
kx_1 = (float)dataConver_x.fData[0];
kx_2 = (float)dataConver_x.fData[1];
dataConver_y.dData = InData.calibK[0];
ky_1 = (float)dataConver_y.fData[0];
ky_1 = (float)dataConver_x.fData[1];
dataConver_y.dData = InData.calibK[1];
kx_2 = (float)dataConver_y.fData[0];
ky_2 = (float)dataConver_y.fData[1];
xmul0 = kx_1;
@ -206,9 +206,9 @@ void calib(
{
dataConver_x.dData = InData.calibK[0];
kx_1 = (float)dataConver_x.fData[0];
kx_2 = (float)dataConver_x.fData[1];
dataConver_y.dData = InData.calibK[0];
ky_1 = (float)dataConver_y.fData[0];
ky_1 = (float)dataConver_x.fData[1];
dataConver_y.dData = InData.calibK[1];
kx_2 = (float)dataConver_y.fData[0];
ky_2 = (float)dataConver_y.fData[1];
float x2_tmp = (float)x2;
@ -244,9 +244,9 @@ void calib(
{
dataConver_x.dData = InData.calibK[0];
kx_1 = (float)dataConver_x.fData[0];
kx_2 = (float)dataConver_x.fData[1];
dataConver_y.dData = InData.calibK[0];
ky_1 = (float)dataConver_y.fData[0];
ky_1 = (float)dataConver_x.fData[1];
dataConver_y.dData = InData.calibK[1];
kx_2 = (float)dataConver_y.fData[0];
ky_2 = (float)dataConver_y.fData[1];
float x4_tmp = (float)x4;
@ -281,9 +281,9 @@ void calib(
{
dataConver_x.dData = InData.calibK[0];
kx_1 = (float)dataConver_x.fData[0];
kx_2 = (float)dataConver_x.fData[1];
dataConver_y.dData = InData.calibK[0];
ky_1 = (float)dataConver_y.fData[0];
ky_1 = (float)dataConver_x.fData[1];
dataConver_y.dData = InData.calibK[1];
kx_2 = (float)dataConver_y.fData[0];
ky_2 = (float)dataConver_y.fData[1];
float x6_tmp = (float)x6;

View File

@ -154,11 +154,14 @@ void genCalibTestSream(
conData.Sync = 0b00;
if(m == 0)
{
Byte8 dataConv;
dataConv.fData[0] = 0.0;
dataConv.fData[1] = 1.0;
conData.calibK[0] = dataConv.dData;
conData.calibK[1] = dataConv.dData;
Byte8 dataConv_0;
dataConv_0.fData[0] = 0.0;
dataConv_0.fData[1] = 0.0;
Byte8 dataConv_1;
dataConv_1.fData[0] = 1.0;
dataConv_1.fData[1] = 1.0;
conData.calibK[0] = dataConv_0.dData;
conData.calibK[1] = dataConv_1.dData;
}
else
{

View File

@ -4,12 +4,12 @@
void compute3D(
hls::stream<RgnSubPixCalib> &inSubCalib,
hls::stream<Pnt3D> &outPt3D,
double u0,
double v0,
double F_inv,
double plane_a,
double plane_b,
double plane_c
float u0_f,
float v0_f,
float F_inv_f,
float plane_a_f,
float plane_b_f,
float plane_c_f
)
{
#pragma HLS DATA_PACK variable=inSubCalib
@ -61,6 +61,12 @@ void compute3D(
outData.x = InData.x;
outPt3D.write(outData);
double u0 = u0_f;
double v0 =v0_f;
double F_inv =F_inv_f;
double plane_a = plane_a_f;
double plane_b = plane_b_f;
double plane_c = plane_c_f;
for(int n = 0; n < WinNum; n ++)
{
#pragma HLS LOOP_TRIPCOUNT min=3072 max=3072

View File

@ -7,12 +7,12 @@
void compute3D(
hls::stream<RgnSubPixCalib> &inSubCalib,
hls::stream<Pnt3D> &outPt3D,
double u0,
double v0,
double F_inv,
double plane_a,
double plane_b,
double plane_c
float u0,
float v0,
float F_inv,
float plane_a,
float plane_b,
float plane_c
);
#endif

View File

@ -211,12 +211,12 @@ int main()
uint16_t frameROI_y = 0;
genCompute3DTestSream(testData, inStream, FrmNo, timeStamp, encInfo, frameROI_w, frameROI_h, frameROI_x, frameROI_y);
double u0 = 620.1;
double v0 = 1023.51;
double F_inv = 0.0009933051235;
double plane_a = -2.67733;
double plane_b = 0.0501805;
double plane_c = 631.944;
float u0 = 620.1;
float v0 = 1023.51;
float F_inv = 0.0009933051235;
float plane_a = -2.67733;
float plane_b = 0.0501805;
float plane_c = 631.944;
hls::stream<Pnt3D> outStream;
compute3D(inStream, outStream, u0, v0, F_inv, plane_a, plane_b, plane_c );