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

View File

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

View File

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

View File

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

View File

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