double pupileSizeMin
Minimum diameter size of the microscope pupile in the lens plane, measured in pixels.
double lambda
Lambda of illumination.
double DeltaZo
Z axis global shift.
void generateOTF(MultidimArray< std::complex< double > > &OTF, double Zpos) const
Generate the Optical Transfer Function (OTF) for a slice according to Microscope and Im parameters...
PsfType type
Define the selected PSF generation algorithm.
MultidimArray< double > PSF
Working PSF with nonlinear zdim whose slices are the mean PSF for slabs.
void applyOTF(MultidimArray< double > &Im, const double sliceOffset) const
Apply the OTF to the image, by means of the convolution.
void generatePSF()
Generate the 3D Point Spread Function (PSF) according to Microscope parameters.
double deltaR
Outermost zone width.
XRayPSF & operator=(const XRayPSF &)=delete
double dxoPSF
object space XY-plane sampling rate of the PSF Volume
Image< double > psfVol
3D PSF read from file
void setFocalShift(double zShift)
Add focal shift to previously read psf zshift.
double dyl
Pixel size in Y-dim in lens plane.
double dxo
object space XY-plane sampling rate
double Nzp
Number of zones in zone plate.
static void defineParams(XmippProgram *program)
void threshold(double *phi, unsigned long nvox, double limit)
Standard mode, image size does not changes.
void reducePSF2Slabs(double threshold)
Calculate the width of the slabs to reduce computing time and the mean PSF for each.
double Zo
Object plane on Focus (Reference)
std::vector< int > slabIndex
Z positions in the original PSF Volume to determine de slabs.
void read(const FileName &fn, bool readVolume=true)
size_t Noz
Z size of the input image (object plane size)
double DoF
Depth of focus. Only for information purposes.
void readParams(XmippProgram *program)
size_t Nix
Size of the image in image plane, to be rescaled if needed.
double Rlens
Lens Aperture Radius.
double deltaZMaxX
Z limits around Zo in the psf generation due to Nyquist Limit.
int verbose
Switch to control verbose mode.
double slabThr
Threshold to separate The volume into slabs to use the same PSF.
void calculateParams(double _dxo, double _dzo=-1, double threshold=0.)
Produce Side information.
double Flens
Focal length.
void show()
Show the microscope parameters.
void adjustParam()
Calculate if a resize of the X-Y plane is needed to avoid the Nyquist Limit.
size_t Nox
X size of the input image (object plane size)
Increasing the image size by Interpolating.
void write(const FileName &fn)
void lensPD(MultidimArray< std::complex< double > > &Im, double Flens, double lambda, double dx, double dy)
Generate the quadratic phase distribution of a ideal lens.
double dzo
object space Z sampling rate
double dxl
Pixel size in X-dim in lens plane.
double dzoPSF
object space Z sampling rate of the PSF Volume
PsfxrAdjust AdjustType
Parameters to change image size to avoid Nyquist limit.
void generatePSFIdealLens(MultidimArray< double > &PSFi, double Zpos) const
Generate the PSF for a single plane according to a ideal lens.
friend std::ostream & operator<<(std::ostream &out, const XRayPSF &psf)
Show.
double dxi
Image space XY-plane sampling rate.
size_t Noy
Y size of the input image (object plane size)
MultidimArray< double > * mask
Lens shape Mask.