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

Openholo Light Field based CGH generation. More...

#include <ophLightField.h>

Inheritance diagram for ophLF:
Collaboration diagram for ophLF:

Public Member Functions

 ophLF (void)
 Constructor. More...
 
void setNumImage (int nx, int ny)
 
void setNumImage (ivec2 num)
 
void setResolImage (int nx, int ny)
 
void setResolImage (ivec2 num)
 
void setDistRS2Holo (Real dist)
 
void setFieldLens (Real lens)
 
ivec2 getNumImage ()
 
ivec2 getResolImage ()
 
Real getDistRS2Holo ()
 
Real getFieldLens ()
 
uchar ** getLF ()
 
oph::Complex< Real > * getRSPlane ()
 
bool readConfig (const char *fname)
 Light Field based CGH configuration file load. More...
 
int loadLF (const char *directory, const char *exten)
 Light Field images load. More...
 
int loadLF ()
 
void generateHologram ()
 Hologram generation. More...
 
void setMode (bool is_CPU)
 Set the value of a variable is_CPU(true or false) More...
 
void writeIntensity_gray8_bmp (const char *fileName, int nx, int ny, Complex< Real > *complexvalue, int k=-1)
 
void setViewingWindow (bool is_ViewingWindow)
 Set the value of a variable is_ViewingWindow(true or false) More...
 
- Public Member Functions inherited from ophGen
 ophGen (void)
 Constructor. More...
 
Real ** getEncodedBuffer (void)
 Function for getting the encoded complex field buffer. More...
 
uchar ** getNormalizedBuffer (void)
 Function for getting the normalized(0~255) complex field buffer. More...
 
void initialize (void)
 Initialize variables for Hologram complex field, encoded data, normalized data. More...
 
int loadPointCloud (const char *pc_file, OphPointCloudData *pc_data_)
 load to point cloud data. More...
 
bool readConfig (const char *fname)
 load to configuration file. More...
 
void propagationAngularSpectrum (int ch, Complex< Real > *input_u, Real propagation_dist, Real k, Real lambda)
 Angular spectrum propagation method. More...
 
void normalize (void)
 Normalization function to save as image file after hologram creation. More...
 
bool save (const char *fname, uint8_t bitsperpixel=8, uchar *src=nullptr, uint px=0, uint py=0)
 Function for saving image files. More...
 
void * load (const char *fname)
 Function for loading image files. More...
 
virtual bool loadAsOhc (const char *fname)
 Function to read OHC file. More...
 
virtual void encoding (unsigned int ENCODE_FLAG, Complex< Real > *holo=nullptr, bool bShift=false)
 Encoding Functions. More...
 
virtual void encoding (unsigned int ENCODE_FLAG, unsigned int SSB_PASSBAND, Complex< Real > *holo=nullptr)
 
void encoding ()
 
void waveCarry (Real carryingAngleX, Real carryingAngleY, Real distance)
 Wave carry. More...
 
ivec2 & getEncodeSize (void)
 Function for getting encode size. More...
 
void setResolution (ivec2 resolution)
 Function for setting buffer size. More...
 
Real getElapsedTime ()
 Function for getting elapsed time.
More...
 
void fresnelPropagation (OphConfig context, Complex< Real > *in, Complex< Real > *out, Real distance)
 Fresnel propagation. More...
 
void fresnelPropagation (Complex< Real > *in, Complex< Real > *out, Real distance, uint channel)
 Fresnel propagation. 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...
 
virtual bool saveAsOhc (const char *fname)
 Function to write OHC file
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 ~ophLF (void)
 Destructor. More...
 
void initializeLF ()
 
void convertLF2ComplexField ()
 
void prepareInputdataGPU ()
 
void convertLF2ComplexField_GPU ()
 
void fresnelPropagation_GPU ()
 
- Protected Member Functions inherited from ophGen
virtual ~ophGen (void)=0
 Destructor. More...
 
bool save (const char *fname, uint8_t bitsperpixel, uint px, uint py, uint fnum, uchar *args ...)
 Called when saving multiple hologram data at a time. More...
 
void resetBuffer ()
 reset buffer More...
 
void numericalInterference (Complex< Real > *holo, Real *encoded, const int size)
 Encoding method. More...
 
void twoPhaseEncoding (Complex< Real > *holo, Real *encoded, const int size)
 
void burckhardt (Complex< Real > *holo, Real *encoded, const int size)
 
void singleSideBand (Complex< Real > *holo, Real *encoded, const ivec2 holosize, int passband)
 Encoding method. More...
 
void encodeSymmetrization (Complex< Real > *holo, Real *encoded, const ivec2 sig_loc)
 Encoding method. More...
 
void freqShift (Complex< Real > *src, Complex< Real > *dst, const ivec2 holosize, int shift_x, int shift_y)
 Frequency shift. More...
 
void encodeSideBand (bool bCPU, ivec2 sig_location)
 Encode the CGH according to a signal location parameter. More...
 
void encodeSideBand_CPU (int cropx1, int cropx2, int cropy1, int cropy2, ivec2 sig_location)
 Encode the CGH according to a signal location parameter on the CPU. More...
 
void encodeSideBand_GPU (int cropx1, int cropx2, int cropy1, int cropy2, ivec2 sig_location)
 Encode the CGH according to a signal location parameter on the GPU. More...
 
void getShiftPhaseValue (Complex< Real > &shift_phase_val, int idx, ivec2 sig_location)
 Calculate the shift phase value. More...
 
void getRandPhaseValue (Complex< Real > &rand_phase_val, bool rand_phase)
 Assign random phase value if RANDOM_PHASE == 1. More...
 
virtual void ophFree (void)
 Pure virtual function for override in child classes. 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

- Public Types inherited from ophGen
enum  ENCODE_FLAG {
  ENCODE_PHASE, ENCODE_AMPLITUDE, ENCODE_REAL, ENCODE_SIMPLENI,
  ENCODE_BURCKHARDT, ENCODE_TWOPHASE, ENCODE_SSB, ENCODE_OFFSSB,
  ENCODE_SYMMETRIZATION
}
 
enum  SSB_PASSBAND { SSB_LEFT, SSB_RIGHT, SSB_TOP, SSB_BOTTOM }
 
- Protected Attributes inherited from ophGen
ivec2 encode_size
 Encoded hologram size, varied from encoding type. More...
 
int ENCODE_METHOD
 Encoding method flag. More...
 
int SSB_PASSBAND
 Passband in Single-side band encoding. More...
 
Real elapsedTime
 Elapsed time of generate hologram. More...
 
Real ** holo_encoded
 buffer to encoded. More...
 
uchar ** holo_normalized
 buffer to normalized. More...
 
- 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

Openholo Light Field based CGH generation.

Author
Yeon-Gyeong Ju, Jae-Hyeung Park

Definition at line 97 of file ophLightField.h.

Constructor & Destructor Documentation

◆ ophLF()

ophLF::ophLF ( void  )
explicit

Constructor.

Definition at line 55 of file ophLightField.cpp.

◆ ~ophLF()

virtual ophLF::~ophLF ( void  )
inlineprotectedvirtual

Destructor.

Definition at line 109 of file ophLightField.h.

Member Function Documentation

◆ convertLF2ComplexField()

void ophLF::convertLF2ComplexField ( )
protected

Definition at line 306 of file ophLightField.cpp.

◆ convertLF2ComplexField_GPU()

void ophLF::convertLF2ComplexField_GPU ( )
protected

Definition at line 95 of file ophLightField_GPU.cpp.

◆ fresnelPropagation_GPU()

void ophLF::fresnelPropagation_GPU ( )
protected

Definition at line 152 of file ophLightField_GPU.cpp.

◆ generateHologram()

void ophLF::generateHologram ( void  )

Hologram generation.

Returns
(*complex_H)

Definition at line 240 of file ophLightField.cpp.

◆ getDistRS2Holo()

Real ophLF::getDistRS2Holo ( )
inline

Definition at line 135 of file ophLightField.h.

◆ getFieldLens()

Real ophLF::getFieldLens ( void  )
inline

Definition at line 136 of file ophLightField.h.

◆ getLF()

uchar** ophLF::getLF ( )
inline

Definition at line 137 of file ophLightField.h.

◆ getNumImage()

ivec2 ophLF::getNumImage ( )
inline

Definition at line 133 of file ophLightField.h.

◆ getResolImage()

ivec2 ophLF::getResolImage ( )
inline

Definition at line 134 of file ophLightField.h.

◆ getRSPlane()

oph::Complex<Real>* ophLF::getRSPlane ( )
inline

Definition at line 138 of file ophLightField.h.

◆ initializeLF()

void ophLF::initializeLF ( )
protected

Definition at line 283 of file ophLightField.cpp.

◆ loadLF() [1/2]

int ophLF::loadLF ( const char *  directory,
const char *  exten 
)

Light Field images load.

Parameters
directoryDirectory which has the Light Field source image files
extenLight Field images extension
Returns
LF This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 133 of file ophLightField.cpp.

◆ loadLF() [2/2]

int ophLF::loadLF ( )

Definition at line 187 of file ophLightField.cpp.

◆ prepareInputdataGPU()

void ophLF::prepareInputdataGPU ( )
protected

Definition at line 53 of file ophLightField_GPU.cpp.

◆ readConfig()

bool ophLF::readConfig ( const char *  fname)

Light Field based CGH configuration file load.

xml configuration file load

Returns
distanceRS2Holo
num_image
resolution_image
context_.pixel_pitch
context_.pixel_number
context_.lambda

Definition at line 76 of file ophLightField.cpp.

◆ setDistRS2Holo()

void ophLF::setDistRS2Holo ( Real  dist)
inline

Definition at line 131 of file ophLightField.h.

◆ setFieldLens()

void ophLF::setFieldLens ( Real  lens)
inline

Definition at line 132 of file ophLightField.h.

◆ setMode()

void ophLF::setMode ( bool  is_CPU)

Set the value of a variable is_CPU(true or false)

if is_CPU == true
CPU implementation
else
GPU implementation 
Parameters
[in]is_CPUthe value for specifying whether the hologram generation method is implemented on the CPU or GPU

Definition at line 66 of file ophLightField.cpp.

◆ setNumImage() [1/2]

void ophLF::setNumImage ( int  nx,
int  ny 
)
inline

Definition at line 127 of file ophLightField.h.

◆ setNumImage() [2/2]

void ophLF::setNumImage ( ivec2  num)
inline

Definition at line 128 of file ophLightField.h.

◆ setResolImage() [1/2]

void ophLF::setResolImage ( int  nx,
int  ny 
)
inline

Definition at line 129 of file ophLightField.h.

◆ setResolImage() [2/2]

void ophLF::setResolImage ( ivec2  num)
inline

Definition at line 130 of file ophLightField.h.

◆ setViewingWindow()

void ophLF::setViewingWindow ( bool  is_ViewingWindow)

Set the value of a variable is_ViewingWindow(true or false)

if is_ViewingWindow == true
Transform viewing window
else
Hologram 
Parameters
is_ViewingWindow: the value for specifying whether the hologram generation method is implemented on the viewing window

Definition at line 71 of file ophLightField.cpp.

◆ writeIntensity_gray8_bmp()

void ophLF::writeIntensity_gray8_bmp ( const char *  fileName,
int  nx,
int  ny,
Complex< Real > *  complexvalue,
int  k = -1 
)

Definition at line 376 of file ophLightField.cpp.


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