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
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
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
and3.hbf
. -
The file
10.hbf
is produced by the application. -
mask.hbf
is an optionnal file. If present in the foldername_of_study/MetricData
, the reconstruction will be run only on the point marked by this file.