Openholo  v5.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...
 
void SaveImage (const char *path, const char *ext="bmp")
 
void setConfig (OphRecConfig config)
 
void SetMode (unsigned int mode)
 
OphRecConfiggetConfig ()
 
bool ReconstructImage ()
 
bool readConfig (const char *fname)
 
bool readImage (const char *path)
 
bool readImagePNA (const char *phase, const char *amplitude)
 
bool readImageRNI (const char *real, const char *imaginary)
 
void Perform_Simulation ()
 
void Initialize ()
 
bool save (const char *fname, uint8_t bitsperpixel, uchar *src, uint px, uint py)
 
template<typename T >
void normalize (T *src, uchar *dst, int x, int y)
 
template<typename T >
void normalize (T *src, uchar *dst, int x, int y, T max, T min)
 
vector< uchar * > & getNormalizedBuffer ()
 
- 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...
 
ImageConfiggetImageConfig ()
 Function for getting the image config. More...
 
void setPixelNumber (ivec2 n)
 Function for setting the output resolution. More...
 
void setPixelNumber (int width, int height)
 
void setPixelPitch (vec2 p)
 Function for setting the output pixel pitch. More...
 
void setPixelPitch (Real pitchX, Real pitchY)
 
void setWaveLength (Real w, const uint idx=0)
 Function for setting the wave length. More...
 
void setWaveNum (int num)
 Function for setting the wave number. More...
 
void setOffset (ivec2 offset)
 Function for setting the offset. More...
 
void setImageMerge (bool merge)
 Function for setting the image merge(true or false) More...
 
void setImageRotate (bool rotate)
 Function for setting the image rotate(true or false) More...
 
void setImageFlip (int flip)
 Function for setting the image flip. More...
 
void setMaxThreadNum (int num)
 Function for setting the max thread num. More...
 
int getMaxThreadNum ()
 Function for getting the max thread num. More...
 
bool mergeColor (int idx, int width, int height, uchar *src, uchar *dst)
 Function for generate RGB image from each grayscale image. More...
 
bool separateColor (int idx, int width, int height, uchar *src, uchar *dst)
 Function for generate each grayscale image from RGB image. 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...
 
void Clear ()
 
void GetPupilFieldFromHologram ()
 
void GetPupilFieldFromVWHologram ()
 
void Propagation_Fresnel_FFT (int chnum)
 
void ASM_Propagation ()
 
void ASM_Propagation_GPU ()
 
void GetPupilFieldImage (Complex< Real > *src, Real *dst, int pnx, int pny, Real ppx, Real ppy, Real scaleX, Real scaleY)
 
void getVarname (int vtr, vec3 &var_vals, std::string &varname2)
 
- 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 imgScaleBilinear (uchar *src, uchar *dst, int w, int h, int neww, int newh, int channels=1)
 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, bool bReverse=false)
 Execution functions to be called after fft1, fft2, and fft3. More...
 
void fftFree (void)
 Resource release method. More...
 
void fftInit2D (ivec2 size, int sign, unsigned int flag)
 initialize method for 2D FFT More...
 
void fft2 (Complex< Real > *src, Complex< Real > *dst, int nx, int ny, int type, bool bNormalized=false, bool bShift=true)
 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_
 
ResolutionConfig resCfg
 
ImageConfig imgCfg
 
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 60 of file ophCascadedPropagation.cpp.

◆ ~ophCascadedPropagation()

ophCascadedPropagation::~ophCascadedPropagation ( )

Destructor.

Definition at line 72 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 503 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 510 of file ophCascadedPropagation.cpp.

◆ getRetinaWavefieldAll()

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

Return all wavefields at retina plane.

Definition at line 517 of file ophCascadedPropagation.cpp.

◆ getSlmWavefield()

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

Return monochromatic wavefield at SLM plane.

Definition at line 496 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 132 of file ophCascadedPropagation.cpp.

◆ ophFree()

void ophCascadedPropagation::ophFree ( void  )
protectedvirtual

Pure virtual function for override in child classes.

Reimplemented from ophRec.

Definition at line 76 of file ophCascadedPropagation.cpp.

◆ propagate()

bool ophCascadedPropagation::propagate ( )

Do cascaded propagation.

Returns
true if successful
false when failed

Definition at line 81 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 455 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 405 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 104 of file ophCascadedPropagation.cpp.

◆ saveAsOhc()

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

Function to write OHC file.

Reimplemented from Openholo.

Definition at line 113 of file ophCascadedPropagation.cpp.


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