Data format description

1. HBF

Since the pictures we are working on are big files, holo3 uses a binary format (Holo3 Binary Format) .hbf to stock data. Here is the notation of most important files.

Those files are structured this way :

  • a string begining by class CH3Array2D<, followed by the Data Format and ending by > *\0

complete list of supported examples :

'class CH3Array2D<__int8> *',  DataFormat='int8', N=1
'class CH3Array2D<__int16> *',  DataFormat='int16', N=1
'class CH3Array2D<__int32> *',  DataFormat='int32', N=1
'class CH3Array2D<__int64> *', DataFormat='int64', N=1
'class CH3Array2D<long> *',  DataFormat='int32', N=1
'class CH3Array2D<unsigned __int8> *', DataFormat='uint8', N=1
'class CH3Array2D<unsigned __int16> *', DataFormat='uint16', N=1
'class CH3Array2D<unsigned __int32> *', DataFormat='uint32', N=1
'class CH3Array2D<unsigned __int64> *', DataFormat='uint64', N=1
'class CH3Array2D<float> *', DataFormat='float', N=1
'class CH3Array2D<double> *', DataFormat='double', N=1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  2
'class CH3Array2D<class CH3Point2D<__int8> > *', DataFormat='int8', N=2
'class CH3Array2D<class CH3Point2D<__int16> > *', DataFormat='int16', N=2
'class CH3Array2D<class CH3Point2D<__int32> > *', DataFormat='int32', N=2
'class CH3Array2D<class CH3Point2D<__int64> > *', DataFormat='in64', N=2
'class CH3Array2D<class CH3Point2D<unsigned __int8> > *', DataFormat='uint8', N=2
'class CH3Array2D<class CH3Point2D<unsigned __int16> > *', DataFormat='uint16', N=2
'class CH3Array2D<class CH3Point2D<unsigned __int32> > *', DataFormat='uint32', N=2
'class CH3Array2D<class CH3Point2D<unsigned __int64> > *', DataFormat='uint64', N=2
'class CH3Array2D<class CH3Point2D<float> > *', DataFormat='float', N=2
'class CH3Array2D<class CH3Point2D<double> > *', DataFormat='double', N=2

'class CH3Array2D<class CH3Vector2D<__int8> > *', DataFormat='int8', N=2
'class CH3Array2D<class CH3Vector2D<__int16> > *', DataFormat='int16', N=2
'class CH3Array2D<class CH3Vector2D<__int32> > *', DataFormat='int32', N=2
'class CH3Array2D<class CH3Vector2D<__int64> > *', DataFormat='int64', N=2
'class CH3Array2D<class CH3Vector2D<unsigned __int8> > *', DataFormat='uint8', N=2
'class CH3Array2D<class CH3Vector2D<unsigned __int16> > *', DataFormat='uint16', N=2
'class CH3Array2D<class CH3Vector2D<unsigned __int32> > *', DataFormat='uint32', N=2
'class CH3Array2D<class CH3Vector2D<unsigned __int64> > *', DataFormat='uint64', N=2
'class CH3Array2D<class CH3Vector2D<float> > *', DataFormat='float', N=2
'class CH3Array2D<class CH3Vector2D<double> > *', DataFormat='double', N=2
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   3
'class CH3Array2D<class CH3Point3D<__int8> > *', DataFormat='int8', N=3
'class CH3Array2D<class CH3Point3D<__int16> > *', DataFormat='int16', N=3
'class CH3Array2D<class CH3Point3D<__int32> > *', DataFormat='int32', N=3
'class CH3Array2D<class CH3Point3D<__int64> > *', DataFormat='in64', N=3
'class CH3Array2D<class CH3Point3D<unsigned __int8> > *', DataFormat='uint8', N=3
'class CH3Array2D<class CH3Point3D<unsigned __int16> > *', DataFormat='uint16', N=3
'class CH3Array2D<class CH3Point3D<unsigned __int32> > *', DataFormat='uint32', N=3
'class CH3Array2D<class CH3Point3D<unsigned __int64> > *', DataFormat='uint64', N=3
'class CH3Array2D<class CH3Point3D<float> > *', DataFormat='float', N=3
'class CH3Array2D<class CH3Point3D<double> > *', DataFormat='double', N=3

'class CH3Array2D<class CH3Vector3D<__int8> > *', DataFormat='int8', N=3
'class CH3Array2D<class CH3Vector3D<__int16> > *', DataFormat='int16', N=3
'class CH3Array2D<class CH3Vector3D<__int32> > *', DataFormat='int32', N=3
'class CH3Array2D<class CH3Vector3D<__int64> > *', DataFormat='int64', N=3
'class CH3Array2D<class CH3Vector3D<unsigned __int8> > *', DataFormat='uint8', N=3
'class CH3Array2D<class CH3Vector3D<unsigned __int16> > *', DataFormat='uint16', N=3
'class CH3Array2D<class CH3Vector3D<unsigned __int32> > *', DataFormat='uint32', N=3
'class CH3Array2D<class CH3Vector3D<unsigned __int64> > *', DataFormat='uint64', N=3
'class CH3Array2D<class CH3Vector3D<float> > *', DataFormat='float', N=3
'class CH3Array2D<class CH3Vector3D<double> > *', DataFormat='double', N=3
  • a long int for the number of the version

  • a long int for the number of rows

  • a long int for the number of columns

  • nrows x ncols x dims x DataFormat coefficients

for example if a matrix has 6 pixels (2 rows R1 and R2 and 3 columns C1 C2 and C3), pixels will be stocked in that order : p11 p12 p13 p21 P22 P23.

If this picture has 3D points P11 to P23 then it’s data will be stocked in that order : P11x P11y P11z P12x P12y P12z P13x P13y P13z P21x P21y P21z P22x P22y P22z P23x P23y P23z

2. PostProc Data

When reconstructing the surface, we only need slopes data. Therefore, Intensity, Contrast and Phase data are all optionnal data that we will use only if we want to apply additionnal features. (For example running the indicators). For these reason, those files are stocked inside a different folder named name_of_study/PostProcData while files related to the reconstruction are be stocked in name_of_study/MetricData

Table 1. PostProcData notation

Direction

Data

Properties

Intensity

Phase

Contrast(abs)

Contrast(rel)

Pattern size

Pictures taken

Horizontal

1001.hbf

1002.hbf

1004.hbf

1008.hbf

64

16

3001.hbf

3002.hbf

3004.hbf

3008.hbf

128

8

5001.hbf

5002.hbf

5004.hbf

5008.hbf

272

4

Vertical

2001.hbf

2002.hbf

2004.hbf

2008.hbf

64

16

4001.hbf

4002.hbf

4004.hbf

4008.hbf

128

8

6001.hbf

6002.hbf

6004.hbf

6008.hbf

256

4

7001.hbf

7002.hbf

7004.hbf

7008.hbf

480

4

Phase unwrapped

Horizontal

70002.hbf

64

Vertical

80002.hbf

64

3. Metric Data

Table 2. Applications
Direction Coordinates Coordinates of Tangent vector Slopes local Surface reconstructed

x

0.hbf

2.hbf

5.hbf

y

1.hbf

3.hbf

6.hbf

z

4.hbf

10.hbf

Other files

mask.hbf

  • The most important files for the reconstruction are the local slopes, which are also the first two coordinates of the Tangent vector, 2.hbf and 3.hbf.

  • The file 10.hbf is produced by the application.

  • mask.hbf is an optionnal file. If present in the folder name_of_study/MetricData, the reconstruction will be run only on the point marked by this file.