Top class. More...
#include <cwo.h>
Public Member Functions | |
void | InitParams () |
void | InitBuffers () |
Intialize parameters. | |
void | FreeBuffers () |
Initialze buffers. | |
virtual void * | __Malloc (size_t size) |
Free buffers. | |
virtual void | __Free (void **a) |
virtual void | __Memcpy (void *dst, void *src, size_t size) |
virtual void | __Memset (void *p, int c, size_t size) |
virtual void | __Expand (void *src, int sx, int sy, int srcNx, int srcNy, void *dst, int dx, int dy, int dstNx, int dstNy, int type) |
virtual void | __ExpandMirror (cwoComplex *src, int srcNx, int srcNy, cwoComplex *dst, int dstNx, int dstNy, int type) |
virtual void | __ShiftedFresnelAperture (cwoComplex *a) |
virtual void | __ShiftedFresnelProp (cwoComplex *a) |
virtual void | __ShiftedFresnelCoeff (cwoComplex *a) |
virtual void | __ARSSFresnelAperture (cwoComplex *a) |
virtual void | __ARSSFresnelProp (cwoComplex *a) |
virtual void | __ARSSFresnelCoeff (cwoComplex *a) |
virtual void | __FresnelConvProp (cwoComplex *a) |
virtual void | __FresnelConvCoeff (cwoComplex *a, float const_val=1.0f) |
virtual void | __FresnelAnalysisTransfer (cwoComplex *a, cwoComplex *b) |
virtual void | __AngularProp (cwoComplex *a, int flag) |
void | __AngularLim (float *fx_c, float *fx_w, float *fy_c, float *fy_w) |
virtual void | __HuygensProp (cwoComplex *a) |
virtual void | __FresnelFourierProp (cwoComplex *a) |
virtual void | __FresnelFourierCoeff (cwoComplex *a) |
virtual void | __FresnelDblAperture (cwoComplex *a, float z1) |
virtual void | __FresnelDblFourierDomain (cwoComplex *a, float z1, float z2, cwoInt4 *zp) |
virtual void | __FresnelDblCoeff (cwoComplex *a, float z1, float z2) |
virtual void | __FFT (void *src, void *dst, int type) |
virtual void | __IFFT (void *src, void *dst) |
virtual void | __FFTShift (void *src) |
void | __Add (cwoComplex *a, float b, cwoComplex *c) |
virtual void | __Add (cwoComplex *a, const cwoComplex &b, cwoComplex *c) |
virtual void | __Add (cwoComplex *a, cwoComplex *b, cwoComplex *c) |
void | __Sub (cwoComplex *a, float b, cwoComplex *c) |
virtual void | __Sub (cwoComplex *a, const cwoComplex &b, cwoComplex *c) |
virtual void | __Sub (cwoComplex *a, cwoComplex *b, cwoComplex *c) |
void | __Mul (cwoComplex *a, float b, cwoComplex *c) |
virtual void | __Mul (cwoComplex *a, const cwoComplex &b, cwoComplex *c) |
virtual void | __Mul (cwoComplex *a, cwoComplex *b, cwoComplex *c) |
void | __Div (cwoComplex *a, float b, cwoComplex *c) |
virtual void | __Div (cwoComplex *a, const cwoComplex &b, cwoComplex *c) |
virtual void | __Div (cwoComplex *a, cwoComplex *b, cwoComplex *c) |
void | __Rep (cwoComplex *a, float b, cwoComplex *c) |
virtual void | __Rep (cwoComplex *a, const cwoComplex &b, cwoComplex *c) |
virtual void | __Rep (cwoComplex *a, cwoComplex *b, cwoComplex *c) |
virtual void | __Re (cwoComplex *a, cwoComplex *b) |
virtual void | __Im (cwoComplex *a, cwoComplex *b) |
virtual void | __Conj (cwoComplex *a) |
virtual void | __Intensity (cwoComplex *a, cwoComplex *b) |
virtual void | __Amp (cwoComplex *a, cwoComplex *b) |
virtual void | __Phase (cwoComplex *a, cwoComplex *b, float offset) |
virtual void | __Arg (cwoComplex *a, cwoComplex *b, float scale, float offset) |
virtual void | __Real2Complex (float *src, cwoComplex *dst) |
virtual void | __Phase2Complex (float *src, cwoComplex *dst) |
virtual void | __Arg2Cplx (cwoComplex *src, cwoComplex *dst, float scale, float offset) |
virtual void | __Polar (float *amp, float *ph, cwoComplex *c) |
virtual void | __ReIm (cwoComplex *re, cwoComplex *im, cwoComplex *c) |
virtual void | __RectFillInside (cwoComplex *p, int m, int n, int Sx, int Sy, cwoComplex a) |
virtual void | __RectFillOutside (cwoComplex *p, int m, int n, int Sx, int Sy, cwoComplex a) |
virtual void | __FloatToChar (char *dst, float *src, int N) |
virtual void | __CharToFloat (float *dst, char *src, int N) |
void | FromChar (const char *src, int Nx, int Ny) |
void | FromFloat (const float *src, int Nx, int Ny) |
void | SetSize (int Nx, int Ny) |
void | SetPropDist (float z) |
float | GetPropDist () |
CWO () | |
constructor | |
virtual | ~CWO () |
Constructor with size. | |
CWO (CWO &tmp) | |
copy constructor | |
CWO (int Nx, int Ny) | |
constructor | |
CWO & | operator= (CWO &tmp) |
CWO & | operator= (float a) |
CWO & | operator= (const cwoComplex &a) |
template<class T = CWO> | |
T | operator+ (T &a) |
template<class T = CWO> | |
T | operator+ (float a) |
template<class T = CWO> | |
T | operator+ (const cwoComplex &a) |
template<class T = CWO> | |
T | operator- (T &a) |
template<class T = CWO> | |
T | operator- (float a) |
template<class T = CWO> | |
T | operator- (const cwoComplex &a) |
template<class T = CWO> | |
T | operator* (T &a) |
template<class T = CWO> | |
T | operator* (float a) |
template<class T = CWO> | |
T | operator* (const cwoComplex &a) |
template<class T = CWO> | |
T | operator/ (T &a) |
template<class T = CWO> | |
T | operator/ (float a) |
template<class T = CWO> | |
T | operator/ (const cwoComplex &a) |
CWO & | operator+= (CWO &const a) |
CWO & | operator+= (float a) |
CWO & | operator+= (cwoComplex a) |
CWO & | operator-= (CWO &a) |
CWO & | operator-= (float a) |
CWO & | operator-= (cwoComplex a) |
CWO & | operator*= (CWO &a) |
CWO & | operator*= (float a) |
CWO & | operator*= (cwoComplex a) |
CWO & | operator/= (CWO &a) |
CWO & | operator/= (float a) |
CWO & | operator/= (cwoComplex a) |
virtual void | Send (CWO &a) |
Send data to GPU. | |
virtual void | Recv (CWO &a) |
Receive data from GPU. | |
int | Create (int Nx, int Ny=1) |
Create complex amplitude with Nx x Ny size. | |
virtual void | Destroy () |
Release complex amplitude with Nx x Ny size (in pixel unit) from memory. | |
void | Attach (cwoCtx *ctx, cwoComplex *p) |
void | SetTimer () |
Start time mesurement. | |
double | EndTimer () |
End time mesurement. | |
void | SetCtx (const cwoCtx &c) |
Set context which manages the parameters of the wavelength, pixel pitch, etc. | |
cwoCtx & | GetCtx () |
Get context which manages the parameters of the wavelength, pixel pitch, etc. | |
void | SetCalcType (int type) |
Set diffraction type. Do not use it. | |
void | SetPitch (float px, float py) |
Set the sampling rate on source and destination planes. | |
void | SetPitch (float p) |
void | SetPitch (const cwoFloat2 &p) |
void | SetPitch (const cwoVect2< float > &p) |
void | SetSrcPitch (float px, float py) |
Set the sampling rate on source plane only. | |
void | SetSrcPitch (float p) |
void | SetSrcPitch (const cwoFloat2 &p) |
void | SetSrcPitch (const cwoVect2< float > &p) |
void | SetDstPitch (float px, float py) |
Set the sampling rate on destination plane only. | |
void | SetDstPitch (float p) |
void | SetDstPitch (const cwoFloat2 &p) |
void | SetDstPitch (const cwoVect2< float > &p) |
void | SetWaveLength (float w) |
Set the wavelength of light. | |
void | SetOffset (float x, float y) |
Set the offset of source plane away from the origin. | |
void | SetOffset (const cwoFloat2 &p) |
void | SetOffset (const cwoVect2< float > &p) |
void | SetSrcOffset (float x, float y) |
Set the offset of source plane away from the origin. | |
void | SetSrcOffset (const cwoFloat2 &p) |
void | SetSrcOffset (const cwoVect2< float > &p) |
void | SetDstOffset (float x, float y) |
Set the offset of destination plane away from the origin. | |
void | SetDstOffset (const cwoFloat2 &p) |
void | SetDstOffset (const cwoVect2< float > &p) |
void | SetThreads (int Nx, int Ny=1) |
set the number of threads | |
int | GetThreads () |
get the number of threads | |
size_t | GetNx () |
get horizontal pixel number | |
size_t | GetNy () |
get vertical pixel number | |
cwoVect2< size_t > | GetShape () |
get horizontal and vertical pixel number | |
float | GetWaveLength () |
get wavelength | |
float | GetWaveNum () |
get wave number | |
float | GetDistance () |
get propagation distance | |
float | GetPx () |
get sampling rate along to x-axis on source plane | |
float | GetPy () |
get sampling rate along to y-axis on source plane | |
cwoVect2< float > | GetPitch () |
float | GetSrcPx () |
get sampling rate along to x-axis on source plane | |
float | GetSrcPy () |
get sampling rate along to y-axis on source plane | |
cwoVect2< float > | GetSrcPitch () |
float | GetDstPx () |
get sampling rate along to x-axis on destination plane | |
float | GetDstPy () |
get sampling rate along to y-axis on destination plane | |
cwoVect2< float > | GettDstPitch () |
float | GetOx () |
get offset along to x-axis on source plane | |
float | GetOy () |
get offset along to y-axis on source plane | |
cwoVect2< float > | GetOffset () |
float | GetSrcOx () |
get offset along to x-axis on source plane | |
float | GetSrcOy () |
get offset along to y-axis on source plane | |
cwoVect2< float > | GetSrcOffset () |
float | GetDstOx () |
get offset along to x-axis on destination plane | |
float | GetDstOy () |
get offset along to y-axis on destination plane | |
cwoVect2< float > | GetDstOffset () |
float | GetLx () |
get physical length of source along to x-axis | |
float | GetLy () |
get physical length of source along to y-axis | |
cwoVect2< float > | GetLength () |
float | GetSrcLx () |
get physical length of source along to x-axis | |
float | GetSrcLy () |
get physical length of source along to y-axis | |
cwoVect2< float > | GetSrcLength () |
float | GetDstLx () |
get physical length of destication along to x-axis | |
float | GetDstLy () |
get physical length of destication along to y-axis | |
cwoVect2< float > | GetDstLength () |
cwoVect2< int > | GetCenterPix () |
int | GetAliasingFreeApproxSphWave (float z, float p, float wl) |
get aliasing-free radius of approximated spherical wave | |
void | ShowParam () |
Show parameters of cwoCtx. | |
int | CheckExt (const char *fname, const char *ext) |
int | Load (const std::string &fname, int c=CWO_GREY) |
Load image file or cwo file. | |
int | Load (const std::string &fname_amp, const std::string &fname_pha, int c=CWO_GREY) |
Load image file or cwo file. | |
int | Save (const std::string &fname, int bmp_8_24=24) |
Save image file or cwo file. | |
int | Save (const std::string &fname, CWO *r, CWO *g=nullptr, CWO *b=nullptr) |
int | SaveMonosToColor (const std::string &fname, const std::string &r_name, const std::string &g_name, const std::string &b_name) |
int | SaveAsImage (const std::string &fname, float i1, float i2, float o1, float o2, int flag=CWO_SAVE_AS_RE, int bmp_8_24=24) |
int | SaveAsImage (const std::string &fname, int flag=CWO_SAVE_AS_RE, int bmp_8_24=24) |
virtual int | SaveAsImage (cwoComplex *p, int Nx, int Ny, const std::string &fname, int flag=CWO_SAVE_AS_RE, int bmp_8_24=24) |
int | SaveLineAsText (const std::string &fname, int flag) |
int | SaveLineAsText (const std::string &fname, int flag, int x1, int y1, int x2, int y2) |
cwoComplex * | GetBuffer () |
Get pointer to the buffer of the complex amplitude. | |
int | CmpCtx (cwoCtx &a, cwoCtx &b) |
size_t | GetMemSizeCplx () |
Get required memory with Nx x Ny size in cwoComplex. | |
size_t | GetMemSizeFloat () |
Get required memory with Nx x Ny size in float. | |
size_t | GetMemSizeChar () |
Get required memory with Nx x Ny size in char. | |
int | GetDfrExpand () |
Calculate diffraction. | |
void | SetDfrExpand (int flag=0) |
void | Diffract (float d, int type=CWO_ANGULAR, cwoInt4 *zp=nullptr, cwoComplex *knl_mask=nullptr, CWO *numap=nullptr) |
void | Diffract (float d, int type, CWO *tmp_buf) |
void | Diffract (int type, CWO *kernel[]) |
void | DiffractConv (float d, int type, cwoComplex *ape, cwoComplex *prop, cwoInt4 *zp=nullptr, cwoComplex *knl_mask=nullptr, CWO *numap=nullptr, int prop_calc=1) |
void | DiffractFourier (float d, int type, cwoInt4 *zp=NULL) |
void | DiffractDirect (float d, CWO *snumap, CWO *dnumap) |
void | DiffractAffine (float *affine_mat, int interpolation=CWO_INTER_LINEAR) |
diffraction with affine matrix | |
void | DiffractDepth (float z, float dz, int num, const char *path, const char *name, const char *ext, int type=CWO_ANGULAR) |
void | AngularProp (CWO *a) |
void | ShiftedAngularProp (CWO *a) |
void | FresnelConvProp (CWO *a) |
void | FresnelConvCoeff (CWO *a) |
void | ShiftedFresnelProp (CWO *a) |
void | ShiftedFresnelAperture (CWO *a) |
void | ShiftedFresnelCoeff (CWO *a) |
void | ARSSFresnelProp (CWO *a) |
void | ARSSFresnelAperture (CWO *a) |
void | ARSSFresnelCoeff (CWO *a) |
void | FresnelFourierProp (CWO *a) |
void | FresnelFourierCoeff (CWO *a) |
void | FresnelDblAperture (CWO *a, float z1) |
void | FresnelDblFourierDomain (CWO *a, float z1, float z2, cwoInt4 *zp) |
void | FresnelDblCoeff (CWO *a, float z1, float z2) |
void | FresnelDupProp (CWO *a, float M) |
void | PreDiffract (float z, int type, CWO *a[]) |
void | ReleaseTmpBuffer () |
void | FresnelCoeff (float z1, float z2, float wl1, float wl2) |
float | fresnel_c (float x) |
float | fresnel_s (float x) |
void | FresnelInt (float z, int x1, int y1, int x2, int y2) |
virtual void | __AddSphericalWave (cwoComplex *p, float x, float y, float z, float px, float py, float a, float ph=0.0f) |
virtual void | __MulSphericalWave (cwoComplex *p, float x, float y, float z, float px, float py, float a) |
void | AddSphericalWave (float x, float y, float z, float a, float ph=0.0f) |
void | AddSphericalWave (float x, float y, float z, float px, float py, float a, float ph=1.0f) |
Add spherical wave to the field. | |
void | MulSphericalWave (float x, float y, float z, float a=1.0f) |
Multiply spherical wave to the field. | |
void | MulSphericalWave (float x, float y, float z, float px, float py, float a=1.0f) |
virtual void | __AddApproxSphWave (cwoComplex *p, float x, float y, float phi, float zx, float zy, float px, float py, float a) |
Add Fresnel-approximated spherical wave to the field. | |
void | AddApproxSphWave (float x, float y, float z, float a=1.0f) |
void | AddApproxSphWave (float x, float y, float z, float px, float py, float a=1.0f) |
void | AddApproxSphWave (float x, float y, float phi, float zx, float zy, float px, float py, float a=1.0f) |
virtual void | __MulApproxSphWave (cwoComplex *p, float x, float y, float phi, float zx, float zy, float px, float py, float a) |
Multiply Fresnel-approximated spherical wave to the field. | |
void | MulApproxSphWave (float x, float y, float z, float a=1.0f) |
void | MulApproxSphWave (float x, float y, float z, float px, float py, float a=1.0f) |
void | MulApproxSphWave (float x, float y, float phi, float zx, float zy, float px, float py, float a=1.0f) |
void | AddPlanarWave (float kx, float ky, float px, float py, float a=1.0f) |
Add planar wave to the field. | |
void | AddPlanarWave (float kx, float ky, float a=1.0f) |
Add planar wave to the field. | |
void | MulPlanarWave (float kx, float ky, float px, float py, float a=1.0f) |
Multiply planar wave to the field. | |
void | MulPlanarWave (float kx, float ky, float a=1.0f) |
Multiply planar wave to the field. | |
void | Re () |
Taking only the real part of complex amplitude. | |
void | Im () |
Taking only the imaginary part of complex amplitude. | |
void | Conj () |
Calculating the complex conjugation of complex amplitude. | |
void | Intensity () |
Calculating the absolute square (light intensity) of complex amplitude. | |
void | Amp () |
Calculating the amplitude of complex amplitude. | |
void | Phase (float offset=0.0f) |
Calculating complex amplitude with the constant amplitude . | |
void | Arg (float scale=1.0f, float offset=0.0f) |
Calculating the argument of complex amplitude with real value from to . . | |
void | Expi () |
void | Arg2Cplx (float scale=1.0, float offset=0.0) |
void | Cart2Polar () |
void | Polar2Cart () |
void | ReIm (CWO &re, CWO &im) |
replace the real and imaginary parts. | |
void | Char () |
void | Float () |
void | Quant (float alpha) |
void | ToDouble (double *a) |
void | FromDouble (double *a) |
virtual void | SqrtReal () |
Take the square root of only the real part of the complex amplitude field. | |
virtual void | SqrtCplx () |
Take the square root of the amplitude of the complex amplitude field. | |
void | Div (float a) |
cwoComplex | Polar (float amp, float arg) |
void | SetPixel (int x, int y, float a) |
void | SetPixel (const cwoVect2< int > &v, float a) |
void | SetPixel (int x, int y, float amp, float ph) |
void | SetPixel (const cwoVect2< int > &v, float amp, float ph) |
void | SetPixel (int x, int y, cwoComplex &a) |
void | SetPixel (const cwoVect2< int > &v, cwoComplex &a) |
void | SetPixel (int x, int y, CWO &a) |
void | SetPixel (const cwoVect2< int > &v, CWO &a) |
void | AddPixel (int x, int y, cwoComplex a) |
void | AddPixel (const cwoVect2< int > &v, cwoComplex a) |
void | AddPixel (int x, int y, CWO &a) |
void | AddPixel (const cwoVect2< int > &v, CWO &a) |
void | MulPixel (int x, int y, float a) |
void | MulPixel (const cwoVect2< int > &v, float a) |
void | MulPixel (int x, int y, cwoComplex a) |
void | MulPixel (const cwoVect2< int > &v, cwoComplex a) |
void | GetPixel (int x, int y, float &a) |
void | GetPixel (const cwoVect2< int > &v, float &a) |
void | GetPixel (int x, int y, cwoComplex &a) |
void | GetPixel (const cwoVect2< int > &v, cwoComplex &a) |
cwoComplex | GetPixel (int m, int n) |
cwoComplex | GetPixel (const cwoVect2< int > &v) |
void | GetPixel (int x, int y, CWO &a) |
void | GetPixel (const cwoVect2< int > &v, CWO &a) |
void | GetLineH (int n, int N, CWO &a) |
void | GetLineV (int m, int N, CWO &a) |
void | GetLine (int m1, int n1, int m2, int n2, CWO &a) |
void | SetLineH (int n, CWO &a) |
void | SetLineV (int m, CWO &a) |
void | SetLine (int m1, int n1, int m2, int n2, CWO &a) |
virtual void | __Copy (cwoComplex *src, int x1, int y1, int sNx, int sNy, cwoComplex *dst, int x2, int y2, int dNx, int dNy, int Sx, int Sy) |
void | Copy (CWO &a, int x1, int y1, int x2, int y2, int Sx, int Sy) |
void | Clear (int c=0) |
virtual void | Fill (cwoComplex a) |
template<class T > | |
void | FlipH (T *a) |
template<class T > | |
void | FlipV (T *a) |
void | Flip (int mode=0) |
void | Crop (int x1, int y1, int Sx, int Sy) |
void | Crop (const cwoVect2< int > &v, const cwoVect2< int > &s) |
void | Crop (int x1, int y1, int Sx, int Sy, CWO &a) |
void | Crop (const cwoVect2< int > &v, const cwoVect2< int > &s, CWO &a) |
void | ShiftX (int s, int flag=0) |
void | ShiftY (int s, int flag=0) |
void | Transpose () |
virtual void | __Transpose (cwoComplex *pi, cwoComplex *po) |
void | JoinH (CWO &a) |
void | JoinV (CWO &a) |
void | Rect (int m, int n, int Sx, int Sy, cwoComplex &a, int flag=CWO_FILL_INSIDE) |
fill inside and outside rectangular area | |
void | Rect (const cwoVect2< int > &v, const cwoVect2< int > &s, cwoComplex &a, int flag=CWO_FILL_INSIDE) |
void | Circ (int m, int n, int r, cwoComplex &a, int flag=CWO_FILL_INSIDE) |
fill inside or outside circular area with radius r | |
void | Circ (const cwoVect2< int > &v, int r, cwoComplex &a, int flag=CWO_FILL_INSIDE) |
virtual void | __CircFillInside (cwoComplex *p, int m, int n, int r, cwoComplex &a) |
virtual void | __CircFillOutside (cwoComplex *p, int m, int n, int r, cwoComplex &a) |
void | MulCirc (int m, int n, int r, cwoComplex &a) |
multiply complex value in circular area | |
void | MulCirc (const cwoVect2< int > &v, int r, cwoComplex &a) |
void | Convolve (CWO &a, float *ker, int Sx, int Sy) |
void | ConvolveFFT (CWO *a, CWO *b, CWO *c) |
virtual void | Expand (int Nx, int Ny) |
void | ExpandMirror () |
void | ExpandTwice (CWO *src) |
void | ExpandHalf (CWO *dst) |
int | ScaleReal (float lim=1.0) |
scale current pixels (real part of complex amplitude) by specified maximum value | |
int | ScaleReal (float i1, float i2, float o1, float o2) |
scale real part of complex amplitude by specified range | |
virtual int | __ScaleReal (float i1, float i2, float o1, float o2) |
int | ScaleCplx (float lim=1.0) |
scale complex amplitude by specified maximum value | |
int | ScaleCplx (float i1, float i2, float o1, float o2) |
scalecomplex amplitude by specified range | |
virtual int | __ScaleCplx (float i1, float i2, float o1, float o2) |
virtual void | SetRandSeed (long long int s) |
set the seed of random sequence to generate other | |
long long int | GetRandSeed () |
float | GetRandVal () |
get random value | |
cwoComplex | GetRandComplex () |
virtual void | __RandPhase (cwoComplex *a, float max, float min) |
virtual void | __MulRandPhase (cwoComplex *a, float max, float min) |
virtual void | RandReal (float max=1.0f, float min=0.0f) |
void | RandPhase (float max=CWO_PI, float min=-CWO_PI) |
void | SetRandPhase (float max=CWO_PI, float min=-CWO_PI) |
void | MulRandPhase (float max=CWO_PI, float min=-CWO_PI) |
void | __Hanning (cwoComplex *a, int m, int n, int Wx, int Wy) |
Hanning window. | |
void | __Hamming (cwoComplex *a, int m, int n, int Wx, int Wy) |
Hamming window. | |
void | __WindowCos (cwoComplex *a, int m, int n, int W, int Wa) |
void | __WindowTukey (cwoComplex *a, int m, int n, float r) |
Tukey window. | |
virtual void | __WindowFlatCos (cwoComplex *p, int L, int L0, float k) |
Windoww function (flatheadded cos window) | |
void | __WindowFlatCosCirc (cwoComplex *p, int L, int L0, float k) |
void | __WindowSigmoid (cwoComplex *p, int m, int n, float a, float Tmax, float Tmin) |
Sigmoid window. | |
virtual void | __ResizeNearest (cwoComplex *p_new, int newNx, int newNy, cwoComplex *p_old, int oldNx, int oldNy) |
virtual void | __ResizeLinear (cwoComplex *p_new, int newNx, int newNy, cwoComplex *p_old, int oldNx, int oldNy) |
virtual void | __ResizeCubic (cwoComplex *p_new, int newNx, int newNy, cwoComplex *p_old, int oldNx, int oldNy) |
virtual void | __ResizeLanczos (cwoComplex *p_new, int newNx, int newNy, cwoComplex *p_old, int oldNx, int oldNy) |
virtual void | __ResizeNearestScale (cwoComplex *p_src, cwoComplex *p_dst, float scale_x, float scale_y) |
virtual void | __ResizeLinearScale (cwoComplex *p_src, cwoComplex *p_dst, float scale_x, float scale_y) |
virtual void | __ResizeCubicScale (cwoComplex *p_src, cwoComplex *p_dst, float scale_x, float scale_y) |
virtual void | __ResizeLanczosScale (cwoComplex *p_src, cwoComplex *p_dst, float scale_x, float scale_y) |
void | AddNoiseWhite (float max=1.0) |
void | MulNoiseWhite (float max=1.0) |
void | AddNoiseGaussian (float mu, float sigma) |
void | MulNoiseGaussian (float mu, float sigma) |
void | Resize (int dNx, int dNy, int flag=CWO_INTER_LINEAR) |
resize an image | |
void | Resize (const cwoVect2< int > &s, int flag=CWO_INTER_LINEAR) |
void | Resize (CWO *dst, float scale_x, float scale_y, int flag=CWO_INTER_LINEAR) |
void | Rotate (float deg) |
virtual void | AffineAngularSpectrum (float *mat_affine, float px, float py, int flag=CWO_INTER_LINEAR) |
void | AffineAngularSpectrum (float *mat_affine, const cwoVect2< float > &pitch, int flag=CWO_INTER_LINEAR) |
virtual void | ErrorDiffusion (CWO *a=nullptr, int flag=CWO_ED_FS) |
virtual void | ErrorDiffusionSegmented (CWO *output, int flag=CWO_ED_FS) |
void | RGB2YCbCr (CWO *rgb, CWO *ycbcr) |
void | YCbCr2RGB (CWO *rgb, CWO *ycbcr) |
void | MulMatrix (CWO *a, cwoComplex *b, CWO *c) |
void | FourierShift (float m, float n) |
int | FFT (int flag=0) |
Fast Fourier Transform (FFT) | |
virtual void | FFTShift () |
FFT Shift. | |
int | FFT (int dx, int dy, int flag=0) |
Fast Fourier Transform (FFT) | |
virtual void | FFTShift (int dx, int dy) |
FFT Shift. | |
virtual void | __ScaledFFTCoeff (cwoComplex *p, float sx, float sy, cwoComplex alpha) |
virtual void | __ScaledFFTKernel (cwoComplex *p, float sx, float sy, cwoComplex alpha) |
virtual void | __NUFFT_T1 (cwoComplex *p_fld, cwoFloat2 *p_x, int R=2, int Msp=12) |
virtual void | __NUFFT_T2 (cwoComplex *p_fld, cwoFloat2 *p_x, int R=2, int Msp=12) |
void | NUFFT1 (CWO *map, int R=2, int Msp=12) |
Non-uniform FFT (Type1) | |
void | NUFFT2 (CWO *map, int R=2, int Msp=12) |
Non-uniform FFT (Type2) | |
void | ConvertSamplingMap (int type) |
void | SamplingMapScaleOnly (int Nx, int Ny, float R, float sgn) |
virtual void | Log (float base=10.0f, float eps=1.0f) |
virtual void | Gamma (float g) |
virtual void | Threshold (float max, float min=0.0) |
virtual void | Threshold (float max_th, float max_val, float min_th, float min_val) |
void | ThresholdAmp (float max_amp, float min_amp) |
void | ThresholdToZero (float th) |
void | ThresholdAbsToZero (float th) |
void | ThresholdHist (float var) |
virtual void | Binary (float th=0.0, float max=1.0, float min=0.0) |
virtual void | __PickupFloat (float *src, float *pix_p, float pix) |
virtual void | __PickupCplx (cwoComplex *src, cwoComplex *pix_p, float pix) |
void | Pickup (CWO *a, float pix) |
Pickup pixels. | |
int | POC (CWO &ref) |
phase only correlation (POC) | |
unsigned int | Count (float a) |
unsigned int | CountNonZero () |
virtual float | Average () |
calculate the average of the real part | |
float | Average (int m, int n, int Sx, int Sy) |
virtual float | Variance () |
calculate the variance of the real part | |
float | Variance (int m, int n, int Sx, int Sy) |
float | StdDev (int m, int n, int Sx, int Sy) |
calculate the standard deviation | |
virtual void | __MaxMin (cwoComplex *a, float *max, float *min, int *max_x=nullptr, int *max_y=nullptr, int *min_x=nullptr, int *min_y=nullptr) |
float | Max (int *m=NULL, int *n=NULL) |
find maximum of the real part | |
float | Min (int *m=NULL, int *n=NULL) |
find minimum of the real part | |
int | MaxMin (float *max, float *min, int *max_x=nullptr, int *max_y=nullptr, int *min_x=nullptr, int *min_y=nullptr) |
find maxmum and minimum of the real part | |
void | VarianceMap (int sx, int sy) |
generate variance map | |
float | Histogram (int *hist, int N) |
generate histogram | |
virtual cwoComplex | TotalSum () |
Calculate total sum of real part. | |
virtual float | MSE (CWO &ref) |
Measure MSE between target and reference images. | |
float | SNR (CWO &ref) |
Measure SNR(Signal to Noise Ratio) between target and reference images. | |
float | PSNR (CWO &ref) |
Measure PSNR between target and reference images. | |
float | SSIM (CWO &ref) |
Measure SSIM between target and reference images. | |
float | SpeckleContrast (int m, int n, int Sx, int Sy) |
CWO | LaplacianPhase () |
void | PoisonSolverFFT () |
void | PhaseUnwrap (int type=0) |
virtual cwoObjPoint * | GetPointBuffer () |
virtual int | GetPointNum () |
virtual void | SetPointNum (int num) |
virtual void | ScalePoint (float lim) |
void | PLS (int flag) |
virtual void | __PLS_Huygens (float ph=0.0f) |
virtual void | __PLS_Fresnel (float ph=0.0f) |
virtual void | __PLS_CGH_Fresnel (float ph=0.0f) |
virtual void | __InvFx2Fy2 (cwoComplex *a) |
void | ParticleField (cwoFloat3 pos, float radius, float amp=1.0f, float init_ph=0.0f) |
Complex amplitude from particle with radius. |
Public Attributes | |
cwoCtx | ctx |
long long int | rnd_seed |
void * | p_field |
float | z0 |
float | pz |
Friends | |
template<class T > | |
CWO | operator+ (const T &a, CWO &c) |
template<class T > | |
CWO | operator- (const T &a, CWO &c) |
template<class T > | |
CWO | operator* (const T &a, CWO &c) |
template<class T > | |
CWO | operator/ (const T &a, CWO &c) |
Top class.
This class is top class of CWO++ library
int CWO::Create | ( | int | Nx, |
int | Ny = 1 |
||
) |
Create complex amplitude with Nx x Ny size.
Nx | : x size (unitless) |
Ny | : y size (unitless) |
|
virtual |
Windoww function (flatheadded cos window)
Reimplemented in GWO.
void CWO::Pickup | ( | CWO * | a, |
float | pix | ||
) |
Pickup pixels.
if a(m,n)=pix , this(m,n)=this(m,n) otherwise this(m,n)=0
a | : pointer to source image |
pix | : pixel value |
int CWO::POC | ( | CWO & | ref | ) |
phase only correlation (POC)
calculate phase only correlation, then the correlation result is maintained in this instance.
ref | : reference image |