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 | List of all members
Cfield_opticalFlow_integrated< T, Timg > Class Template Reference

In this class, specific projection field method is implemented. In the case of O.F.F.E.M. the node value must be identified through a projection, so "fromField2Mod" implements a parallelized loop over image pixel and identifies modes from a least square method strategy. More...

#include <Cfield_opticalFlow_integrated.h>

Inheritance diagram for Cfield_opticalFlow_integrated< T, Timg >:
Cfield_opticalFlow_fem< T, Timg > Cfield_opticalFlow< T, Timg > Cfield< T, Timg > Cfield_opticalFlow_integrated_block< T, Timg >

Public Member Functions

 Cfield_opticalFlow_integrated ()
 
virtual void init (CParameterNetCDF &fp)
 
virtual void exec (const Cimage< Timg > &oImage, const Cmesh< T, Timg > &oMesh, CImgList< T > &modes_prev, CshapeFunction< T, Timg > &oShape_prev, const std::vector< T > &ref_prev, const CImgList< T > &nodes_prev)
 
virtual void project (const Cmesh< T, Timg > &oMesh, const Cimage< Timg > &oImage, CImgList< T > &modes_prev, CshapeFunction< T, Timg > &oShape_prev, const std::vector< T > &ref_prev, const CImgList< T > &nodes_prev, CImgList< T > &modes_cur)
 
virtual void e_ref (const Cimage< Timg > &oImage, const Cmesh< T, Timg > &oMesh, const int &elem, std::vector< T > &ref)
 
virtual void Field2Mod (const Cimage< Timg > &oImage, const Cmesh< T, Timg > &oMesh, const CImgList< T > &nodes_prev, const CImgList< T > &U, CImgList< T > &Ti)
 
- Public Member Functions inherited from Cfield_opticalFlow_fem< T, Timg >
 Cfield_opticalFlow_fem ()
 
void OFIU (const Cmesh< T, Timg > &oMesh, const Cimage< Timg > &oImage, CshapeFunction< T, Timg > &oShape_prev, std::vector< T > ref_prev, const CImgList< T > &nodes_prev, CImgList< T > &modes_prev, CImgList< T > &modes_cur)
 
void OFIBU (const Cmesh< T, Timg > &oMesh, const Cimage< Timg > &oImage, CshapeFunction< T, Timg > &oShape_prev, std::vector< T > ref_prev, const CImgList< T > &nodes_prev, const CImgList< T > &modes_prev, CImgList< T > &U)
 
void Field2Field (const CImgList< T > &U, CImgList< T > &modes_cur)
 
- Public Member Functions inherited from Cfield< T, Timg >
int num_var ()
 
int grid_dims (const int &i)
 

Additional Inherited Members

- Public Attributes inherited from Cfield< T, Timg >
std::string class_name
 
std::string m_type
 
std::string m_name
 
int num_dim
 
int m_threadNB
 
int _3D
 
bool m_verbose
 
const char * m_paramPath
 
CImgList< T > m_field
 
CImg< T > m_res
 
CImg< T > m_def
 
CImgList< T > m_mode
 
std::vector< T > m_meanRes
 
CImg< T > m_correlogram
 to improve, they shouldn't be here//
 
int m_storeCorrelo
 
CshapeFunction< T, Timg > * m_pShape
 
std::vector< T > m_ref
 

Detailed Description

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

In this class, specific projection field method is implemented. In the case of O.F.F.E.M. the node value must be identified through a projection, so "fromField2Mod" implements a parallelized loop over image pixel and identifies modes from a least square method strategy.

Parameters
[in]m_ref: std::vector<int>[3]. It defines the reference location of shape functions.

Constructor & Destructor Documentation

template<typename T , typename Timg >
Cfield_opticalFlow_integrated< T, Timg >::Cfield_opticalFlow_integrated ( )
inline

constructor

Member Function Documentation

template<typename T , typename Timg >
virtual void Cfield_opticalFlow_integrated< T, Timg >::exec ( const Cimage< Timg > &  oImage,
const Cmesh< T, Timg > &  oMesh,
CImgList< T > &  modes_prev,
CshapeFunction< T, Timg > &  oShape_prev,
const std::vector< T > &  ref_prev,
const CImgList< T > &  nodes_prev 
)
inlinevirtual

assign fields and modes

this->m_mod[nodes_num x dimensions](0) and this->m_mod[dimensions](gridX, gridY, gridZ)

Reimplemented from Cfield_opticalFlow_fem< T, Timg >.

Reimplemented in Cfield_opticalFlow_integrated_block< T, Timg >.

template<typename T , typename Timg >
virtual void Cfield_opticalFlow_integrated< T, Timg >::Field2Mod ( const Cimage< Timg > &  oImage,
const Cmesh< T, Timg > &  oMesh,
const CImgList< T > &  nodes_prev,
const CImgList< T > &  U,
CImgList< T > &  Ti 
)
inlinevirtual

transfert fields, coming from a previous image or from a previous method, to modes vector. In the case of OFI, the transfert requires a projection on modes

T[i] is solution of the following system:

$ \left(\sum_{dim = 0}^{dim = n}{K_{dim}\left[i,j\right]}\right).T[i] = \sum_{dim = 0}^{dim = n}{F_{dim}}\left[j\right]$

with :

$ K_{dim}\left[i,j\right] = \sum_{x=0;y=0}^{x=width;y=height}N_{xy}[dim][i].N_{xy}[dim][j]$

$ F_{dim}\left[j\right] = \sum_{x=0;y=0}^{x=width;y=height}U_{xy}[dim].N_{xy}[dim][j]$

i and j the range from 0 to mod number

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

shape functions are required the knowledge of the reference location. In some cases this origin could be automatically set to the image center thus this is a user parameter which must be captured here

require improvement, pb with netcdf load std::vector<T>. When a int vector is declared within parameter file only the first value is captured, thus x, y and z reference position are here separated

Reimplemented from Cfield_opticalFlow< T, Timg >.

Reimplemented in Cfield_opticalFlow_integrated_block< T, Timg >.

template<typename T , typename Timg >
virtual void Cfield_opticalFlow_integrated< T, Timg >::project ( const Cmesh< T, Timg > &  oMesh,
const Cimage< Timg > &  oImage,
CImgList< T > &  modes_prev,
CshapeFunction< T, Timg > &  oShape_prev,
const std::vector< T > &  ref_prev,
const CImgList< T > &  nodes_prev,
CImgList< T > &  modes_cur 
)
inlinevirtual

use the current or the previous "oMesh.num_var()" musn't be problematic since dimensions (i.e. 2D or 3D) remains constant for a set of picture. However the number of modes could change.//

one assumes that if successive OFI methods are used the set of required modes is identical. It allows a faster mode transfert//

Reimplemented from Cfield_opticalFlow_fem< T, Timg >.


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