Xmipp  v3.23.11-Nereus
Macros | Functions
transformations.cpp File Reference
#include "transformations.h"
#include "geometry.h"
#include "bilib/tboundaryconvention.h"
#include "bilib/tsplinebasis.h"
#include "bilib/kerneldiff1.h"
#include "bilib/changebasis.h"
#include "bilib/pyramidtools.h"
#include "xmipp_fft.h"
#include "bilib/kernel.h"
#include <algorithm>
#include "metadata_row_base.h"
#include "utils/half.hpp"
Include dependency graph for transformations.cpp:

Go to the source code of this file.

Macros

#define ADD_IF_EXIST_NONZERO(label, value)
 
#define DELTA_THRESHOLD   10e-7
 
#define APPLYGEO(type)
 
#define SELFSCALETOSIZE(type)
 
#define SCALETOSIZE(type)
 
#define SELFPYRAMIDREDUCE(type)
 
#define SELFPYRAMIDEXPAND(type)
 
#define PYRAMIDEXPAND(type)
 
#define PYRAMIDREDUCE(type)
 

Functions

template<typename T >
void produceSplineCoefficients (int SplineDegree, MultidimArray< double > &coeffs, const MultidimArray< T > &V1)
 
template<typename T >
void produceImageFromSplineCoefficients (int SplineDegree, MultidimArray< T > &img, const MultidimArray< double > &coeffs)
 
template<typename T >
void reduceBSpline (int SplineDegree, MultidimArray< double > &V2, const MultidimArray< T > &V1)
 
template<typename T >
void expandBSpline (int SplineDegree, MultidimArray< double > &V2, const MultidimArray< T > &V1)
 
void geo2TransformationMatrix (const MDRow &imageGeo, Matrix2D< double > &A, bool only_apply_shifts)
 
void string2TransformationMatrix (const String &matrixStr, Matrix2D< double > &matrix, size_t dim)
 
template<typename T >
void transformationMatrix2Parameters2D (const Matrix2D< T > &A, bool &flip, T &scale, T &shiftX, T &shiftY, T &psi)
 
template void transformationMatrix2Parameters2D (const Matrix2D< float > &A, bool &flip, float &scale, float &shiftX, float &shiftY, float &psi)
 
template void transformationMatrix2Parameters2D (const Matrix2D< double > &A, bool &flip, double &scale, double &shiftX, double &shiftY, double &psi)
 
void transformationMatrix2Parameters3D (const Matrix2D< double > &A, bool &flip, double &scale, double &shiftX, double &shiftY, double &shiftZ, double &rot, double &tilt, double &psi)
 
void transformationMatrix2Geo (const Matrix2D< double > &A, MDRow &imageGeo)
 
template<typename T >
void rotation2DMatrix (T ang, Matrix2D< T > &result, bool homogeneous)
 
template void rotation2DMatrix (float ang, Matrix2D< float > &result, bool homogeneous)
 
template void rotation2DMatrix (double ang, Matrix2D< double > &result, bool homogeneous)
 
template void translation2DMatrix (const Matrix1D< float > &, Matrix2D< float > &, bool inverse)
 
template void translation2DMatrix (const Matrix1D< double > &, Matrix2D< double > &, bool inverse)
 
template<typename T >
void translation2DMatrix (const Matrix1D< T > &translation, Matrix2D< T > &resMatrix, bool inverse)
 
void rotation3DMatrix (double ang, char axis, Matrix2D< double > &result, bool homogeneous)
 
void alignWithZ (const Matrix1D< double > &axis, Matrix2D< double > &result, bool homogeneous)
 
void rotation3DMatrix (double ang, const Matrix1D< double > &axis, Matrix2D< double > &result, bool homogeneous)
 
template void translation3DMatrix (const Matrix1D< float > &translation, Matrix2D< float > &resMatrix, bool inverse)
 
template void translation3DMatrix (const Matrix1D< double > &translation, Matrix2D< double > &resMatrix, bool inverse)
 
template<typename T >
void translation3DMatrix (const Matrix1D< T > &translation, Matrix2D< T > &resMatrix, bool inverse)
 
void scale3DMatrix (const Matrix1D< double > &sc, Matrix2D< double > &result, bool homogeneous)
 
bool getLoopRange (double value, double min, double max, double delta, int loopLimit, int &minIter, int &maxIter)
 
template<>
void applyGeometry (int SplineDegree, MultidimArray< std::complex< double > > &V2, const MultidimArray< std::complex< double > > &V1, const Matrix2D< double > &A, bool inv, bool wrap, std::complex< double > outside, MultidimArray< double > *BcoeffsPtr)
 
template<>
void selfApplyGeometry (int Splinedegree, MultidimArray< std::complex< double > > &V1, const Matrix2D< double > &A, bool inv, bool wrap, std::complex< double > outside)
 
void applyGeometry (int SplineDegree, MultidimArrayGeneric &V2, const MultidimArrayGeneric &V1, const Matrix2D< double > &A, bool inv, bool wrap, double outside)
 
void produceSplineCoefficients (int SplineDegree, MultidimArray< double > &coeffs, const MultidimArray< std::complex< double > > &V1)
 
void selfScaleToSize (int SplineDegree, MultidimArrayGeneric &V1, int Xdim, int Ydim, int Zdim)
 
void scaleToSize (int SplineDegree, MultidimArrayGeneric &V2, const MultidimArrayGeneric &V1, int Xdim, int Ydim, int Zdim)
 
void scaleToSize (int SplineDegree, MultidimArray< std::complex< double > > &V2, const MultidimArray< std::complex< double > > &V1, int Xdim, int Ydim, int Zdim)
 
void selfScaleToSize (int SplineDegree, MultidimArray< std::complex< double > > &V1, int Xdim, int Ydim, int Zdim)
 
void selfPyramidReduce (int SplineDegree, MultidimArrayGeneric &V1, int levels)
 
void selfPyramidExpand (int SplineDegree, MultidimArrayGeneric &V1, int levels)
 
void pyramidExpand (int SplineDegree, MultidimArrayGeneric &V2, const MultidimArrayGeneric &V1, int levels)
 
void pyramidReduce (int SplineDegree, MultidimArrayGeneric &V2, const MultidimArrayGeneric &V1, int levels)
 
double interpolatedElementBSplineDiffX (MultidimArray< double > &vol, double x, double y, double z, int SplineDegree)
 
double interpolatedElementBSplineDiffY (MultidimArray< double > &vol, double x, double y, double z, int SplineDegree)
 
double interpolatedElementBSplineDiffZ (MultidimArray< double > &vol, double x, double y, double z, int SplineDegree)
 
void radiallySymmetrize (const MultidimArray< double > &img, MultidimArray< double > &radialImg)
 
void rotation3DMatrixFromIcoOrientations (const char *icoFrom, const char *icoTo, Matrix2D< double > &R)
 
template<typename T >
void radialAverageNonCubic (const MultidimArray< T > &m, Matrix1D< int > &center_of_rot, MultidimArray< T > &radial_mean, MultidimArray< int > &radial_count, bool rounding)
 
template void reduceBSpline< double > (int, MultidimArray< double > &, MultidimArray< double > const &)
 
template void expandBSpline< double > (int, MultidimArray< double > &, const MultidimArray< double > &)
 
template void produceImageFromSplineCoefficients< double > (int, MultidimArray< double > &, MultidimArray< double > const &)
 
template void produceSplineCoefficients< bool > (int, MultidimArray< double > &, MultidimArray< bool > const &)
 
template void produceSplineCoefficients< unsigned short > (int, MultidimArray< double > &, MultidimArray< unsigned short > const &)
 
template void produceSplineCoefficients< unsigned int > (int, MultidimArray< double > &, MultidimArray< unsigned int > const &)
 
template void produceSplineCoefficients< int > (int, MultidimArray< double > &, MultidimArray< int > const &)
 
template void produceSplineCoefficients< double > (int, MultidimArray< double > &, MultidimArray< double > const &)
 
template void produceSplineCoefficients< unsigned char > (int, MultidimArray< double > &, MultidimArray< unsigned char > const &)
 
template void produceSplineCoefficients< short > (int, MultidimArray< double > &, MultidimArray< short > const &)
 
template void produceSplineCoefficients< long > (int, MultidimArray< double > &, MultidimArray< long > const &)
 
template void produceSplineCoefficients< unsigned long > (int, MultidimArray< double > &, MultidimArray< unsigned long > const &)
 
template void produceSplineCoefficients< char > (int, MultidimArray< double > &, MultidimArray< char > const &)
 
template void produceSplineCoefficients< float > (int, MultidimArray< double > &, MultidimArray< float > const &)
 
template void produceSplineCoefficients< half_float::half > (int, MultidimArray< double > &, MultidimArray< half_float::half > const &)
 
template void radialAverageNonCubic< double > (const MultidimArray< double > &m, Matrix1D< int > &center_of_rot, MultidimArray< double > &radial_mean, MultidimArray< int > &radial_count, bool rounding)
 

Macro Definition Documentation

◆ ADD_IF_EXIST_NONZERO

#define ADD_IF_EXIST_NONZERO (   label,
  value 
)
Value:
if (imageGeo.containsLabel(label) || \
!XMIPP_EQUAL_ZERO(value))\
imageGeo.setValue(label, value);
#define XMIPP_EQUAL_ZERO(x)
Definition: xmipp_macros.h:123

Definition at line 327 of file transformations.cpp.

◆ APPLYGEO

#define APPLYGEO (   type)
Value:
applyGeometry(SplineDegree,(*(MultidimArray<type>*)(V2.im)), \
(*(MultidimArray<type>*)(V1.im)), A, inv, wrap, (type) outside);
void applyGeometry(int SplineDegree, MultidimArray< std::complex< double > > &V2, const MultidimArray< std::complex< double > > &V1, const Matrix2D< double > &A, bool inv, bool wrap, std::complex< double > outside, MultidimArray< double > *BcoeffsPtr)
viol type

◆ DELTA_THRESHOLD

#define DELTA_THRESHOLD   10e-7

Definition at line 602 of file transformations.cpp.

◆ PYRAMIDEXPAND

#define PYRAMIDEXPAND (   type)
Value:
MULTIDIM_ARRAY_TYPE(V1,type), levels);
#define MULTIDIM_ARRAY_TYPE(v, type)
viol type
void pyramidExpand(int SplineDegree, MultidimArrayGeneric &V2, const MultidimArrayGeneric &V1, int levels)

◆ PYRAMIDREDUCE

#define PYRAMIDREDUCE (   type)
Value:
MULTIDIM_ARRAY_TYPE(V1,type), levels);
void pyramidReduce(int SplineDegree, MultidimArrayGeneric &V2, const MultidimArrayGeneric &V1, int levels)
#define MULTIDIM_ARRAY_TYPE(v, type)
viol type

◆ SCALETOSIZE

#define SCALETOSIZE (   type)
Value:
MULTIDIM_ARRAY_TYPE(V1,type),Xdim,Ydim,Zdim);
#define MULTIDIM_ARRAY_TYPE(v, type)
viol type
void scaleToSize(int SplineDegree, MultidimArrayGeneric &V2, const MultidimArrayGeneric &V1, int Xdim, int Ydim, int Zdim)

◆ SELFPYRAMIDEXPAND

#define SELFPYRAMIDEXPAND (   type)
Value:
selfPyramidExpand(SplineDegree, \
*((MultidimArray<type>*)(V1.im)), levels);
void selfPyramidExpand(int SplineDegree, MultidimArrayGeneric &V1, int levels)

◆ SELFPYRAMIDREDUCE

#define SELFPYRAMIDREDUCE (   type)
Value:
selfPyramidReduce(SplineDegree, \
*((MultidimArray<type>*)(V1.im)), levels);
void selfPyramidReduce(int SplineDegree, MultidimArrayGeneric &V1, int levels)

◆ SELFSCALETOSIZE

#define SELFSCALETOSIZE (   type)
Value:
Xdim,Ydim,Zdim);
#define MULTIDIM_ARRAY_TYPE(v, type)
void selfScaleToSize(int SplineDegree, MultidimArrayGeneric &V1, int Xdim, int Ydim, int Zdim)
viol type

Function Documentation

◆ expandBSpline< double >()

template void expandBSpline< double > ( int  ,
MultidimArray< double > &  ,
const MultidimArray< double > &   
)

◆ produceImageFromSplineCoefficients< double >()

template void produceImageFromSplineCoefficients< double > ( int  ,
MultidimArray< double > &  ,
MultidimArray< double > const &   
)

◆ produceSplineCoefficients< bool >()

template void produceSplineCoefficients< bool > ( int  ,
MultidimArray< double > &  ,
MultidimArray< bool > const &   
)

◆ produceSplineCoefficients< char >()

template void produceSplineCoefficients< char > ( int  ,
MultidimArray< double > &  ,
MultidimArray< char > const &   
)

◆ produceSplineCoefficients< double >()

template void produceSplineCoefficients< double > ( int  ,
MultidimArray< double > &  ,
MultidimArray< double > const &   
)

◆ produceSplineCoefficients< float >()

template void produceSplineCoefficients< float > ( int  ,
MultidimArray< double > &  ,
MultidimArray< float > const &   
)

◆ produceSplineCoefficients< half_float::half >()

template void produceSplineCoefficients< half_float::half > ( int  ,
MultidimArray< double > &  ,
MultidimArray< half_float::half > const &   
)

◆ produceSplineCoefficients< int >()

template void produceSplineCoefficients< int > ( int  ,
MultidimArray< double > &  ,
MultidimArray< int > const &   
)

◆ produceSplineCoefficients< long >()

template void produceSplineCoefficients< long > ( int  ,
MultidimArray< double > &  ,
MultidimArray< long > const &   
)

◆ produceSplineCoefficients< short >()

template void produceSplineCoefficients< short > ( int  ,
MultidimArray< double > &  ,
MultidimArray< short > const &   
)

◆ produceSplineCoefficients< unsigned char >()

template void produceSplineCoefficients< unsigned char > ( int  ,
MultidimArray< double > &  ,
MultidimArray< unsigned char > const &   
)

◆ produceSplineCoefficients< unsigned int >()

template void produceSplineCoefficients< unsigned int > ( int  ,
MultidimArray< double > &  ,
MultidimArray< unsigned int > const &   
)

◆ produceSplineCoefficients< unsigned long >()

template void produceSplineCoefficients< unsigned long > ( int  ,
MultidimArray< double > &  ,
MultidimArray< unsigned long > const &   
)

◆ produceSplineCoefficients< unsigned short >()

template void produceSplineCoefficients< unsigned short > ( int  ,
MultidimArray< double > &  ,
MultidimArray< unsigned short > const &   
)

◆ radialAverageNonCubic< double >()

template void radialAverageNonCubic< double > ( const MultidimArray< double > &  m,
Matrix1D< int > &  center_of_rot,
MultidimArray< double > &  radial_mean,
MultidimArray< int > &  radial_count,
bool  rounding 
)

◆ reduceBSpline< double >()

template void reduceBSpline< double > ( int  ,
MultidimArray< double > &  ,
MultidimArray< double > const &   
)

◆ rotation2DMatrix() [1/2]

template void rotation2DMatrix ( float  ang,
Matrix2D< float > &  result,
bool  homogeneous 
)

◆ rotation2DMatrix() [2/2]

template void rotation2DMatrix ( double  ang,
Matrix2D< double > &  result,
bool  homogeneous 
)

◆ transformationMatrix2Parameters2D() [1/2]

template void transformationMatrix2Parameters2D ( const Matrix2D< float > &  A,
bool &  flip,
float &  scale,
float &  shiftX,
float &  shiftY,
float &  psi 
)

◆ transformationMatrix2Parameters2D() [2/2]

template void transformationMatrix2Parameters2D ( const Matrix2D< double > &  A,
bool &  flip,
double &  scale,
double &  shiftX,
double &  shiftY,
double &  psi 
)

◆ translation2DMatrix() [1/2]

template void translation2DMatrix ( const Matrix1D< float > &  ,
Matrix2D< float > &  ,
bool  inverse 
)

◆ translation2DMatrix() [2/2]

template void translation2DMatrix ( const Matrix1D< double > &  ,
Matrix2D< double > &  ,
bool  inverse 
)

◆ translation3DMatrix() [1/2]

template void translation3DMatrix ( const Matrix1D< float > &  translation,
Matrix2D< float > &  resMatrix,
bool  inverse 
)

◆ translation3DMatrix() [2/2]

template void translation3DMatrix ( const Matrix1D< double > &  translation,
Matrix2D< double > &  resMatrix,
bool  inverse 
)