YaDICs  V04.14.a
Yet another Digital Image Correlation software: platform dedicated to 2/3D Fluid and Solid kinematics field measurements.
 All Classes Files Functions Variables Pages
Public Member Functions | Public Attributes | List of all members
Ccorrelation_intercor< T, Timg > Class Template Referenceabstract

this class implement 7 functions: More...

#include <Ccorrelation_intercor.h>

Inheritance diagram for Ccorrelation_intercor< T, Timg >:
Ccorrelation< T, Timg > Ccorrelation_intercor_direct< T, Timg > Ccorrelation_intercor_fftw< T, Timg > Ccorrelation_intercor_fftw_phase< T, Timg > Ccorrelation_intercor_fft< T, Timg > Ccorrelation_intercor_fft_phase< T, Timg >

Public Member Functions

virtual void init (CParameterNetCDF &fp)
 
virtual void exec (const Cimage< Timg > &oImage, const Cmesh< T, Timg > &oMesh, Cfield< T, Timg > &oField)
 
void actu_field (const Cimage< Timg > &oImage, const Cmesh< T, Timg > &oMesh, const int &elem, const CNpeak< T > &Peaks, Cfield< T, Timg > &oField)
 
void residual (const Cimage< Timg > &oImage, const Cmesh< T, Timg > &oMesh, const int &elem, const std::vector< T > &offset, Cfield< T, Timg > &oField, T &res)
 
void deformField (const Cimage< Timg > &oImage, const Cmesh< T, Timg > &oMesh, const int &elem, const std::vector< T > &offset, Cfield< T, Timg > &oField, T &res)
 
void residuField (const Cimage< Timg > &oImage, const Cmesh< T, Timg > &oMesh, const int &elem, const std::vector< T > &offset, Cfield< T, Timg > &oField, T &res)
 
void field (const Cimage< Timg > &oImage, const Cmesh< T, Timg > &oMesh, const int &elem, const std::vector< T > &offset, Cfield< T, Timg > &oField, T &res)
 
int cropBox (const Cmesh< T, Timg > &oMesh, const Cimage< Timg > &oImage, const Cfield< T, Timg > &oField, const int &elem, CImgList< T > &box, std::vector< T > &coord0)
 
virtual void correl (CImgList< T > &correlogram, CImgList< T > &F, CImgList< T > &G)=0
 
void FFT (CImgList< T > &correlogram, CImgList< T > &F, CImgList< T > &G)
 
void iFFT (CImgList< T > &correlogram)
 
void shift (CImgList< T > &correlogram)
 
virtual void interCor (CImgList< T > &correlogram, CImgList< T > &F, CImgList< T > &G)
 
void mean (CImgList< T > &correlogram)
 
- Public Member Functions inherited from Ccorrelation< T, Timg >
virtual void regularize (const Cmesh< T, Timg > &oMesh, const Cimage< Timg > &oImage, CImgList< T > &solution)
 
void count (const int &increment, const int &dim, int &counter)
 

Public Attributes

std::string m_peak_type
 
m_meanVal
 
- Public Attributes inherited from Ccorrelation< T, Timg >
std::string class_name
 
std::string m_correl_type
 
std::string m_correl_name
 
m_current_res
 
int m_threadNB
 
int _3D
 
int m_medianFilter
 
bool m_verbose
 

Detailed Description

template<typename T, typename Timg>
class Ccorrelation_intercor< T, Timg >

this class implement 7 functions:

Member Function Documentation

template<typename T , typename Timg >
void Ccorrelation_intercor< T, Timg >::actu_field ( const Cimage< Timg > &  oImage,
const Cmesh< T, Timg > &  oMesh,
const int &  elem,
const CNpeak< T > &  Peaks,
Cfield< T, Timg > &  oField 
)
inline

$ m_{field}\left[ \begin{array}{c} flag \\ SNR \\ U \\ V \\ W \end{array} \right] \left( \begin{array}{cccc} x, & y, & z, & peaks \end{array} \right) = FLOOR\left( m_{field}\left[ \begin{array}{c} flag_0 \\ SNR_0 \\ U_0 \\ V_0 \\ W_0 \end{array} \right] \left( \begin{array}{cccc} x, & y, & z, & peaks \end{array} \right)\right) + \Delta_{0-1} m_{field}\left[ \begin{array}{c} flag_{0-1} \\ SNR_{0-1} \\ U_{0-1} \\ V_{0-1} \\ W_{0-1} \end{array} \right] \left( \begin{array}{cccc} x, & y, & z, & peaks \end{array} \right)$

template<typename T , typename Timg >
int Ccorrelation_intercor< T, Timg >::cropBox ( const Cmesh< T, Timg > &  oMesh,
const Cimage< Timg > &  oImage,
const Cfield< T, Timg > &  oField,
const int &  elem,
CImgList< T > &  box,
std::vector< T > &  coord0 
)
inline

Extract sub_box from global image one using node and element table. Out of bound pixel are set to zero

template<typename T , typename Timg >
virtual void Ccorrelation_intercor< T, Timg >::exec ( const Cimage< Timg > &  oImage,
const Cmesh< T, Timg > &  oMesh,
Cfield< T, Timg > &  oField 
)
inlinevirtual

The objective of this method is to perform the intercorrelation between 2 sub-images. This is done for every sub-images of size (m_zoi(0), m_zoi(1), m_zoi(2)) related to the mesh through oMesh.m_mask[element][Pixel indices]. As there is no depedency between each intercorrelation process a basic openMP parallelization is used

Peaks (peak type (e.g. interpP), number of peak to store (e.g. 1), number of space dimension (e.g. 2))

Implements Ccorrelation< T, Timg >.

template<typename T , typename Timg >
virtual void Ccorrelation_intercor< T, Timg >::init ( CParameterNetCDF &  fp)
inlinevirtual

for an block matching correlation, required attributes are the peak approximation type, the storage mod for correlogram as well as previous init done in upper class, i.e. the median filter size.

Implements Ccorrelation< T, Timg >.

Reimplemented in Ccorrelation_intercor_fftw_phase< T, Timg >.


The documentation for this class was generated from the following file: