Openholo  v1.0
Open Source Digital Holographic Library
ophCascadedPropagation Class Reference

Cascaded propagation module. More...

#include <ophCascadedPropagation.h>

Inheritance diagram for ophCascadedPropagation:
Collaboration diagram for ophCascadedPropagation:

Public Member Functions

 ophCascadedPropagation (const wchar_t *configfilepath)
 Constructor. More...
 
 ~ophCascadedPropagation ()
 Destructor. More...
 
bool propagate ()
 Do cascaded propagation. More...
 
bool save (const wchar_t *pathname, uint8_t bitsperpixel)
 Save wavefield at retina plane as Windows Bitmap file. More...
 
virtual bool saveAsOhc (const char *fname)
 Function to write OHC file. More...
 
virtual bool loadAsOhc (const char *fname)
 Function to read OHC file. More...
 
bool isReadyToPropagate ()
 Returns if all data are prepared. More...
 
oph::uint getNumColors ()
 Returns number of colors. More...
 
oph::vec3 getWavelengths ()
 Returns wavelengths in meter. More...
 
Real getPixelPitchX ()
 Returns horizontal pixel pitch in meter. More...
 
Real getPixelPitchY ()
 Returns vertical pixel pitch in meter. More...
 
oph::uint getResX ()
 Returns horizontal resolution. More...
 
oph::uint getResY ()
 Returns vertical resolution. More...
 
Real getFieldLensFocalLength ()
 Returns focal length of field lens in meter. More...
 
Real getDistObjectToPupil ()
 Returns distance from reconstruction plane to pupil plane in meter. More...
 
Real getDistPupilToRetina ()
 Returns distance from pupil plane to retina plane in meter. More...
 
Real getPupilDiameter ()
 Returns diameter of pupil in meter. More...
 
Real getNor ()
 Returns Nor, which affects the range of output intensity. More...
 
oph::Complex< Real > * getSlmWavefield (oph::uint id)
 Return monochromatic wavefield at SLM plane. More...
 
oph::Complex< Real > * getPupilWavefield (oph::uint id)
 Return monochromatic wavefield at pupil plane. More...
 
oph::Complex< Real > * getRetinaWavefield (oph::uint id)
 Return monochromatic wavefield at retina plane. More...
 
vector< oph::Complex< Real > * > getRetinaWavefieldAll ()
 Return all wavefields at retina plane. More...
 
bool propagateSlmToPupil ()
 Calculates 1st propagation (from SLM plane to pupil plane) More...
 
bool propagatePupilToRetina ()
 Calculates 2nd propagation (from pupil plane to retina plane) More...
 
- Public Member Functions inherited from ophRec
 ophRec (void)
 Constructor. More...
 
- Public Member Functions inherited from Openholo
 Openholo (void)
 Constructor. More...
 
virtual bool saveAsImg (const char *fname, uint8_t bitsperpixel, uchar *src, int width, int height)
 Function for creating image files. More...
 
virtual ucharloadAsImg (const char *fname)
 Function for loading image files. More...
 
Complex< Real > ** getComplexField (void)
 Function for getting the complex field. More...
 
OphConfiggetContext (void)
 Function for getting the current context. More...
 
void setPixelNumber (ivec2 n)
 Function for setting the output resolution. More...
 
void setPixelPitch (vec2 p)
 Function for setting the output pixel pitch. More...
 
void setWaveLength (Real w, const uint idx)
 Function for setting the wave length. More...
 
- Public Member Functions inherited from Base
 Base (void)
 Constructor. More...
 
unsigned long addRef (void)
 If referenced this(Base's child, not abstract class) instance, must call this method. More...
 
unsigned long release (void)
 Call release() when reference is finished. More...
 

Protected Member Functions

virtual void ophFree (void)
 Pure virtual function for override in child classes. More...
 
- Protected Member Functions inherited from ophRec
virtual ~ophRec (void)
 Destructor. More...
 
- Protected Member Functions inherited from Openholo
virtual ~Openholo (void)=0
 Destructor. More...
 
bool checkExtension (const char *fname, const char *ext)
 Functions for extension checking. More...
 
bool loadAsImgUpSideDown (const char *fname, uchar *dst)
 Function for loading image files | Output image data upside down. More...
 
bool getImgSize (int &w, int &h, int &bytesperpixel, const char *fname)
 Function for getting the image size. More...
 
void imgScaleBilnear (uchar *src, uchar *dst, int w, int h, int neww, int newh)
 Function for change image size. More...
 
void convertToFormatGray8 (uchar *src, uchar *dst, int w, int h, int bytesperpixel)
 Function for convert image format to gray8. More...
 
void fft1 (int n, Complex< Real > *in, int sign=OPH_FORWARD, uint flag=OPH_ESTIMATE)
 Functions for performing fftw 1-dimension operations inside Openholo. More...
 
void fft2 (ivec2 n, Complex< Real > *in, int sign=OPH_FORWARD, uint flag=OPH_ESTIMATE)
 Functions for performing fftw 2-dimension operations inside Openholo. More...
 
void fft3 (ivec3 n, Complex< Real > *in, int sign=OPH_FORWARD, uint flag=OPH_ESTIMATE)
 Functions for performing fftw 3-dimension operations inside Openholo. More...
 
void fftExecute (Complex< Real > *out)
 Execution functions to be called after fft1, fft2, and fft3. More...
 
void fftFree (void)
 
void fftwShift (Complex< Real > *src, Complex< Real > *dst, int nx, int ny, int type, bool bNormalized=false)
 Convert data from the spatial domain to the frequency domain using 2D FFT on CPU. More...
 
void fftShift (int nx, int ny, Complex< Real > *input, Complex< Real > *output)
 Swap the top-left quadrant of data with the bottom-right , and the top-right quadrant with the bottom-left. More...
 
void setPixelNumberOHC (const ivec2 pixel_number)
 getter/setter for OHC file read and write More...
 
void setPixelPitchOHC (const vec2 pixel_pitch)
 
void setWavelengthOHC (const Real wavelength, const LenUnit wavelength_unit)
 
void setWaveLengthNumOHC (const uint wavelength_num)
 
void setColorTypeOHC (const ColorType color_type)
 
void setColorArrangeOHC (const ColorArran color_arrange)
 
void setWaveLengthUnitOHC (const LenUnit length_unit)
 
void setFieldEncodingOHC (const FldStore field_store, const FldCodeType field_code_type)
 
void setPhaseEncodingOHC (const BPhaseCode phase_code, const vec2 phase_code_range)
 
void addWaveLengthNComplexFieldDataOHC (const Real wavelength, const OphComplexField &complex_field)
 Function to add ComplexField when adding wavelength data. More...
 
void addWaveLengthOHC (const Real wavelength)
 
void addComplexFieldDataOHC (const OphComplexField &complex_field)
 
void getPixelNumberOHC (ivec2 &pixel_number)
 
void getPixelPitchOHC (vec2 &pixel_pitch)
 
void getWavelengthOHC (vector< Real > &wavelength)
 
void getWaveLengthNumOHC (uint &wavelength_num)
 
void getColorTypeOHC (ColorType &color_type)
 
void getColorArrangeOHC (ColorArran &color_arrange)
 
void getWaveLengthUnitOHC (LenUnit &length_unit)
 
void getComplexFieldDataOHC (Complex< Real > **cmplx, uint wavelen_idx)
 
void getComplexFieldDataOHC (OphComplexField &cmplx, uint wavelen_idx)
 
- Protected Member Functions inherited from Base
virtual ~Base (void)
 Destructor. More...
 

Additional Inherited Members

- Protected Attributes inherited from Openholo
OphConfig context_
 
Complex< Real > ** complex_H
 
ImgEncoderOhcOHC_encoder
 OHC file format Variables for read and write. More...
 
ImgDecoderOhcOHC_decoder
 
- Protected Attributes inherited from Base
unsigned long refCnt
 

Detailed Description

Cascaded propagation module.

Author
Seunghyup Shin

Definition at line 159 of file ophCascadedPropagation.h.

Constructor & Destructor Documentation

◆ ophCascadedPropagation()

ophCascadedPropagation::ophCascadedPropagation ( const wchar_t *  configfilepath)

Constructor.

Parameters
configfilepathabsolute or relative path of configuration file

Definition at line 59 of file ophCascadedPropagation.cpp.

◆ ~ophCascadedPropagation()

ophCascadedPropagation::~ophCascadedPropagation ( )

Destructor.

Definition at line 71 of file ophCascadedPropagation.cpp.

Member Function Documentation

◆ getDistObjectToPupil()

Real ophCascadedPropagation::getDistObjectToPupil ( )
inline

Returns distance from reconstruction plane to pupil plane in meter.

Definition at line 321 of file ophCascadedPropagation.h.

◆ getDistPupilToRetina()

Real ophCascadedPropagation::getDistPupilToRetina ( )
inline

Returns distance from pupil plane to retina plane in meter.

Definition at line 326 of file ophCascadedPropagation.h.

◆ getFieldLensFocalLength()

Real ophCascadedPropagation::getFieldLensFocalLength ( )
inline

Returns focal length of field lens in meter.

Definition at line 316 of file ophCascadedPropagation.h.

◆ getNor()

Real ophCascadedPropagation::getNor ( )
inline

Returns Nor, which affects the range of output intensity.

Nor is NOT intuitive at all and should be changed sometime

Definition at line 337 of file ophCascadedPropagation.h.

◆ getNumColors()

oph::uint ophCascadedPropagation::getNumColors ( )
inline

Returns number of colors.

Definition at line 286 of file ophCascadedPropagation.h.

◆ getPixelPitchX()

Real ophCascadedPropagation::getPixelPitchX ( )
inline

Returns horizontal pixel pitch in meter.

Definition at line 296 of file ophCascadedPropagation.h.

◆ getPixelPitchY()

Real ophCascadedPropagation::getPixelPitchY ( )
inline

Returns vertical pixel pitch in meter.

Definition at line 301 of file ophCascadedPropagation.h.

◆ getPupilDiameter()

Real ophCascadedPropagation::getPupilDiameter ( )
inline

Returns diameter of pupil in meter.

Definition at line 331 of file ophCascadedPropagation.h.

◆ getPupilWavefield()

oph::Complex< Real > * ophCascadedPropagation::getPupilWavefield ( oph::uint  id)

Return monochromatic wavefield at pupil plane.

Definition at line 498 of file ophCascadedPropagation.cpp.

◆ getResX()

oph::uint ophCascadedPropagation::getResX ( )
inline

Returns horizontal resolution.

Definition at line 306 of file ophCascadedPropagation.h.

◆ getResY()

oph::uint ophCascadedPropagation::getResY ( )
inline

Returns vertical resolution.

Definition at line 311 of file ophCascadedPropagation.h.

◆ getRetinaWavefield()

oph::Complex< Real > * ophCascadedPropagation::getRetinaWavefield ( oph::uint  id)

Return monochromatic wavefield at retina plane.

Definition at line 505 of file ophCascadedPropagation.cpp.

◆ getRetinaWavefieldAll()

vector< oph::Complex< Real > * > ophCascadedPropagation::getRetinaWavefieldAll ( )

Return all wavefields at retina plane.

Definition at line 512 of file ophCascadedPropagation.cpp.

◆ getSlmWavefield()

oph::Complex< Real > * ophCascadedPropagation::getSlmWavefield ( oph::uint  id)

Return monochromatic wavefield at SLM plane.

Definition at line 491 of file ophCascadedPropagation.cpp.

◆ getWavelengths()

oph::vec3 ophCascadedPropagation::getWavelengths ( )
inline

Returns wavelengths in meter.

Definition at line 291 of file ophCascadedPropagation.h.

◆ isReadyToPropagate()

bool ophCascadedPropagation::isReadyToPropagate ( )
inline

Returns if all data are prepared.

Definition at line 281 of file ophCascadedPropagation.h.

◆ loadAsOhc()

bool ophCascadedPropagation::loadAsOhc ( const char *  fname)
virtual

Function to read OHC file.

Reimplemented from Openholo.

Definition at line 131 of file ophCascadedPropagation.cpp.

◆ ophFree()

void ophCascadedPropagation::ophFree ( void  )
protectedvirtual

Pure virtual function for override in child classes.

Implements ophRec.

Definition at line 75 of file ophCascadedPropagation.cpp.

◆ propagate()

bool ophCascadedPropagation::propagate ( )

Do cascaded propagation.

Returns
true if successful
false when failed

Definition at line 80 of file ophCascadedPropagation.cpp.

◆ propagatePupilToRetina()

bool ophCascadedPropagation::propagatePupilToRetina ( )

Calculates 2nd propagation (from pupil plane to retina plane)

Returns
true if successful
false when failed

Definition at line 450 of file ophCascadedPropagation.cpp.

◆ propagateSlmToPupil()

bool ophCascadedPropagation::propagateSlmToPupil ( )

Calculates 1st propagation (from SLM plane to pupil plane)

Returns
true if successful
false when failed

Definition at line 400 of file ophCascadedPropagation.cpp.

◆ save()

bool ophCascadedPropagation::save ( const wchar_t *  pathname,
uint8_t  bitsperpixel 
)

Save wavefield at retina plane as Windows Bitmap file.

Parameters
pathnameabsolute or relative path of output file
bitsperpixelnumber of bits per pixel
Returns
true if successfully saved
false when failed

Definition at line 103 of file ophCascadedPropagation.cpp.

◆ saveAsOhc()

bool ophCascadedPropagation::saveAsOhc ( const char *  fname)
virtual

Function to write OHC file.

Reimplemented from Openholo.

Definition at line 112 of file ophCascadedPropagation.cpp.


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