Xmipp
v3.23.11-Nereus
|
Classes | |
class | ParametersProjectionTomography |
struct | project_thread_params |
Macros | |
#define | x0 STARTINGX(IMGMATRIX(*proj)) |
#define | xF FINISHINGX(IMGMATRIX(*proj)) |
#define | y0 STARTINGY(IMGMATRIX(*proj)) |
#define | yF FINISHINGY(IMGMATRIX(*proj)) |
#define | xDim XSIZE(IMGMATRIX(*proj)) |
#define | yDim YSIZE(IMGMATRIX(*proj)) |
Functions | |
template<class T > | |
void | project_SimpleGrid (Image< T > *vol, const SimpleGrid *grid, const Basis *basis, Projection *proj, Projection *norm_proj, int FORW, int eq_mode, const Image< int > *VNeq, Matrix2D< double > *M, const MultidimArray< int > *mask=nullptr, double ray_length=-1.0, int thread_id=-1, int num_threads=1) |
void | projectVolume (MultidimArray< double > &V, Projection &P, int Ydim, int Xdim, double rot, double tilt, double psi, const Matrix1D< double > *roffset=nullptr) |
void | projectVolumeOffCentered (MultidimArray< double > &V, Projection &P, int Ydim, int Xdim) |
void | singleWBP (MultidimArray< double > &V, Projection &P) |
void | count_eqs_in_projection (GridVolumeT< int > &GVNeq, const Basis &basis, Projection &read_proj) |
void | project_Crystal_Volume (GridVolume &vol, const Basis &basis, Projection &proj, Projection &norm_proj, int Ydim, int Xdim, double rot, double tilt, double psi, const Matrix1D< double > &shift, const Matrix1D< double > &aint, const Matrix1D< double > &bint, const Matrix2D< double > &D, const Matrix2D< double > &Dinv, const MultidimArray< int > &mask, int FORW, int eq_mode=ARTK) |
template<class T > | |
void * | project_SimpleGridThread (void *params) |
template<class T > | |
void | project_GridVolume (GridVolumeT< T > &vol, const Basis &basis, Projection &proj, Projection &norm_proj, int Ydim, int Xdim, double rot, double tilt, double psi, int FORW, int eq_mode, GridVolumeT< int > *GVNeq, Matrix2D< double > *M, const MultidimArray< int > *mask, double ray_length, int threads) |
Variables | |
barrier_t | project_barrier |
pthread_mutex_t | project_mutex |
project_thread_params * | project_threads |
constexpr int | FORWARD = 1 |
constexpr int | BACKWARD = 0 |
constexpr int | ARTK = 1 |
constexpr int | CAVK = 2 |
constexpr int | COUNT_EQ = 3 |
constexpr int | CAV = 4 |
constexpr int | CAVARTK = 5 |
const int | ART_PIXEL_SUBSAMPLING = 2 |
Definition at line 255 of file projection.h.
Definition at line 259 of file projection.h.
#define xF FINISHINGX(IMGMATRIX(*proj)) |
Definition at line 256 of file projection.h.
Definition at line 257 of file projection.h.
Definition at line 260 of file projection.h.
#define yF FINISHINGY(IMGMATRIX(*proj)) |
Definition at line 258 of file projection.h.
void count_eqs_in_projection | ( | GridVolumeT< int > & | GVNeq, |
const Basis & | basis, | ||
Projection & | read_proj | ||
) |
Count equations in volume. For Component AVeraing (CAV), the number of equations in which each basis is involved is needed.
Definition at line 1206 of file projection.cpp.
void project_Crystal_Volume | ( | GridVolume & | vol, |
const Basis & | basis, | ||
Projection & | proj, | ||
Projection & | norm_proj, | ||
int | Ydim, | ||
int | Xdim, | ||
double | rot, | ||
double | tilt, | ||
double | psi, | ||
const Matrix1D< double > & | shift, | ||
const Matrix1D< double > & | aint, | ||
const Matrix1D< double > & | bint, | ||
const Matrix2D< double > & | D, | ||
const Matrix2D< double > & | Dinv, | ||
const MultidimArray< int > & | mask, | ||
int | FORW, | ||
int | eq_mode = ARTK |
||
) |
Project a crystal basis volume. This function projects a crystal deformed basis volume, ie, in the documentation volume g. However the angles given must be those for volume f, the undeformed one. You must supply the deformed lattice vectors, and the matrix to pass from the deformed to the undeformed vectors (D and Dinv). a=D*ai;
Valid eq_modes are ARTK, CAVARTK and CAV.
Definition at line 1157 of file projection.cpp.
void project_GridVolume | ( | GridVolumeT< T > & | vol, |
const Basis & | basis, | ||
Projection & | proj, | ||
Projection & | norm_proj, | ||
int | Ydim, | ||
int | Xdim, | ||
double | rot, | ||
double | tilt, | ||
double | psi, | ||
int | FORW, | ||
int | eq_mode, | ||
GridVolumeT< int > * | GVNeq, | ||
Matrix2D< double > * | M, | ||
const MultidimArray< int > * | mask, | ||
double | ray_length, | ||
int | threads | ||
) |
Projection of a Grid Volume.
Project a grid volume with a basis. The Grid volume is projected onto a projection plane defined by (rot, tilt, psi) (1st, 2nd and 3rd Euler angles). The projection is previously is resized to Ydim x Xdim and initialized to 0. The projection itself, from now on, will keep the Euler angles.
FORWARD process: Each volume of the grid is projected on to the projection plane. The output is the projection itself and a normalising image, the normalising image is the projection of the same grid supposing that all basis are of value 1. This normalising image is used by the ART process
BACKWARD process: During the backward process the normalising projection contains the correction image to apply to the volume (in the ART sense). The output is the volume itself, the projection image is useless in this case, and the normalising projection is not modified at all.
As for the mode, valid modes are ARTK, CAVK, COUNT_EQ, CAVARTK.
M is the matrix corresponding to the projection process.
Definition at line 1863 of file projection.cpp.
void project_SimpleGrid | ( | Image< T > * | vol, |
const SimpleGrid * | grid, | ||
const Basis * | basis, | ||
Projection * | proj, | ||
Projection * | norm_proj, | ||
int | FORW, | ||
int | eq_mode, | ||
const Image< int > * | VNeq, | ||
Matrix2D< double > * | M, | ||
const MultidimArray< int > * | mask, | ||
double | ray_length, | ||
int | thread_id, | ||
int | numthreads | ||
) |
Projection of a Simple Grid. Valid eq_modes are ARTK, CAVARTK and CAV.
Definition at line 1314 of file projection.cpp.
void* project_SimpleGridThread | ( | void * | params | ) |
Threaded projection for simple grids
Definition at line 1215 of file projection.cpp.
void projectVolume | ( | MultidimArray< double > & | V, |
Projection & | P, | ||
int | Ydim, | ||
int | Xdim, | ||
double | rot, | ||
double | tilt, | ||
double | psi, | ||
const Matrix1D< double > * | roffset = nullptr |
||
) |
From voxel volumes. The voxel volume is projected onto a projection plane defined by (rot, tilt, psi) (1st, 2nd and 3rd Euler angles) . The projection is previously is resized to Ydim x Xdim and initialized to 0. The projection itself, from now on, will keep the Euler angles.
The offset is a 3D vector specifying the offset that must be applied when going from the projection space to the universal space
rproj=E*r+roffset => r=E^t (rproj-roffset)
Set it to NULL if you don't want to use it
Definition at line 337 of file projection.cpp.
void projectVolumeOffCentered | ( | MultidimArray< double > & | V, |
Projection & | P, | ||
int | Ydim, | ||
int | Xdim | ||
) |
From voxel volumes, off-centered tilt axis. This routine projects a volume that is rotating (angle) degrees around the axis defined by the two angles (axisRot,axisTilt) and that passes through the point raxis. The projection can be further inplane rotated and shifted through the parameters (inplaneRot) and (rinplane).
All vectors involved must be 3D.
The projection model is rproj=H Rinplane Raxis r + Rinplane (I-Raxis) raxis + rinplane
Where Raxis is the 3D rotation matrix given by the axis and the angle.
Definition at line 594 of file projection.cpp.
void singleWBP | ( | MultidimArray< double > & | V, |
Projection & | P | ||
) |
Single Weighted Back Projection. Projects a single particle into a voxels volume by updating its components this way: Voxel(i,j,k) = Voxel(i,j,k) + Pixel( x,y) * Distance.
Where:
Definition at line 609 of file projection.cpp.
const int ART_PIXEL_SUBSAMPLING = 2 |
Definition at line 296 of file projection.h.
constexpr int ARTK = 1 |
Definition at line 177 of file projection.h.
constexpr int BACKWARD = 0 |
Definition at line 175 of file projection.h.
constexpr int CAV = 4 |
Definition at line 180 of file projection.h.
constexpr int CAVARTK = 5 |
Definition at line 181 of file projection.h.
constexpr int CAVK = 2 |
Definition at line 178 of file projection.h.
constexpr int COUNT_EQ = 3 |
Definition at line 179 of file projection.h.
constexpr int FORWARD = 1 |
Definition at line 174 of file projection.h.
barrier_t project_barrier |
Definition at line 46 of file projection.cpp.
pthread_mutex_t project_mutex |
Definition at line 47 of file projection.cpp.
project_thread_params* project_threads |
Definition at line 48 of file projection.cpp.