Xmipp  v3.23.11-Nereus
Classes | Macros | Functions | Variables
mask.h File Reference
#include "blobs.h"
#include "core/histogram.h"
#include "core/xmipp_metadata_program.h"
Include dependency graph for mask.h:

Go to the source code of this file.

Classes

class  MultidimArray< T >
 
class  Matrix2D< T >
 
class  Mask
 
class  ProgMask
 

Macros

#define NO_MASK   0
 
#define BINARY_CIRCULAR_MASK   1
 
#define BINARY_CROWN_MASK   2
 
#define BINARY_CYLINDER_MASK   3
 
#define BINARY_FRAME_MASK   4
 
#define GAUSSIAN_MASK   5
 
#define RAISED_COSINE_MASK   6
 
#define BLACKMAN_MASK   7
 
#define SINC_MASK   8
 
#define SINC_BLACKMAN_MASK   9
 
#define READ_BINARY_MASK   10
 
#define READ_REAL_MASK   11
 
#define RAISED_CROWN_MASK   12
 
#define BINARY_DWT_CIRCULAR_MASK   13
 
#define BINARY_DWT_SPHERICAL_MASK   14
 
#define BINARY_CONE_MASK   15
 
#define BINARY_WEDGE_MASK   16
 
#define BLOB_CIRCULAR_MASK   17
 
#define BLOB_CROWN_MASK   18
 
#define BINARY_TUBE   19
 
#define INT_MASK   1
 
#define DOUBLE_MASK   2
 
#define ALL_KINDS   INT_MASK | DOUBLE_MASK
 
#define COMPUTESTATS(type)   computeStats_within_binary_mask(mask,*((MultidimArray<type>*)m.im),min_val,max_val,avg,stddev);
 

Functions

void apply_geo_binary_2D_mask (MultidimArray< int > &mask, const Matrix2D< double > &A)
 
void apply_geo_cont_2D_mask (MultidimArray< double > &mask, const Matrix2D< double > &A)
 
Actual masks
void RaisedCosineMask (MultidimArray< double > &mask, double r1, double r2, int mode=INNER_MASK, double x0=0, double y0=0, double z0=0)
 
void RaisedCrownMask (MultidimArray< double > &mask, double r1, double r2, double pix_width, int mode=INNER_MASK, double x0=0, double y0=0, double z0=0)
 
void KaiserMask (MultidimArray< double > &mask, double delta=0.01, double Deltaw=1.0/12.0)
 
void SincMask (MultidimArray< double > &mask, double omega, int mode=INNER_MASK, double x0=0, double y0=0, double z0=0)
 
void SincKaiserMask (MultidimArray< double > &mask, double omega, double delta=0.01, double Deltaw=1.0/12.0)
 
void BlackmanMask (MultidimArray< double > &mask, int mode=INNER_MASK, double x0=0, double y0=0, double z0=0)
 
void SincBlackmanMask (MultidimArray< double > &mask, double omega, double power_percentage, double x0=0, double y0=0, double z0=0)
 
void BinaryCircularMask (MultidimArray< int > &mask, double radius, int mode=INNER_MASK, double x0=0, double y0=0, double z0=0)
 
void BlobCircularMask (MultidimArray< double > &mask, double r1, blobtype blob, int mode, double x0=0, double y0=0, double z0=0)
 
void BinaryCrownMask (MultidimArray< int > &mask, double R1, double R2, int mode=INNER_MASK, double x0=0, double y0=0, double z0=0)
 
void BlobCrownMask (MultidimArray< double > &mask, double r1, double r2, blobtype blob, int mode, double x0=0, double y0=0, double z0=0)
 
void GaussianMask (MultidimArray< double > &mask, double sigma, int mode=INNER_MASK, double x0=0, double y0=0, double z0=0)
 
void BinaryDWTCircularMask2D (MultidimArray< int > &mask, double radius, int smin, int smax, const std::string &quadrant)
 
void SeparableSincKaiserMask2D (MultidimArray< double > &mask, double omega, double delta=0.01, double Deltaw=1.0/12.0)
 
void mask2D_4neig (MultidimArray< int > &mask, int value=1, int center=NO_ACTIVATE)
 
void mask2D_8neig (MultidimArray< int > &mask, int value1=1, int value2=1, int center=NO_ACTIVATE)
 
void BinaryDWTSphericalMask2D (MultidimArray< int > &mask, double radius, int smin, int smax, const std::string &quadrant)
 
void BinaryCylinderMask (MultidimArray< int > &mask, double R, double H, int mode=INNER_MASK, double x0=0, double y0=0, int z0=0)
 
void BinaryFrameMask (MultidimArray< int > &mask, int Xrect, int Yrect, int Zrect, int mode=INNER_MASK, double x0=0, double y0=0, double z0=0)
 
void BinaryConeMask (MultidimArray< int > &mask, double theta, int mode=INNER_MASK, bool centerOrigin=false)
 
void BinaryWedgeMask (MultidimArray< int > &mask, double theta0, double thetaF, const Matrix2D< double > &A, bool centerOrigin=false)
 
void mask3D_6neig (MultidimArray< int > &mask, int value=1, int center=NO_ACTIVATE)
 
void mask3D_18neig (MultidimArray< int > &mask, int value1=1, int value2=1, int center=NO_ACTIVATE)
 
void mask3D_26neig (MultidimArray< int > &mask, int value1=1, int value2=1, int value3=1, int center=NO_ACTIVATE)
 

Variables

constexpr int INNER_MASK = 1
 
constexpr int OUTSIDE_MASK = 2
 
constexpr int NO_ACTIVATE = 0
 
constexpr int ACTIVATE = 1
 

Mask Tools

All Mask tools work only in the overlapping area of the given image/volume and the mask in logical coordinates. Ie, if you have a mask defined from -2 to 2 and you apply it to an image defined from 0 to 63 then only those values of the mask between 0 and 2 will be applied. The rest of the image will remain untouched. This region where the mask is active within the overlapping area will be called in this documentation: active area.

#define count_with_mask_above(mask, m, th)   count_with_mask(mask, m, COUNT_ABOVE, th, 0);
 
#define count_with_mask_below(mask, m, th)   count_with_mask(mask, m, COUNT_BELOW, th, 0);
 
#define count_with_mask_between(mask, m, th1, th2)   count_with_mask(mask, m, COUNT_BETWEEN, th1, th2);
 
constexpr int COUNT_ABOVE = 1
 
constexpr int COUNT_BELOW = 2
 
constexpr int COUNT_BETWEEN = 3
 
template<typename T1 , typename T >
void computeStats_within_binary_mask (const MultidimArray< T1 > &mask, const MultidimArray< T > &m, double &min_val, double &max_val, double &avg, double &stddev)
 
void computeStats_within_binary_mask (const MultidimArray< int > &mask, const MultidimArrayGeneric &m, double &min_val, double &max_val, double &avg, double &stddev)
 
template<typename T >
void apply_binary_mask (const MultidimArray< int > &mask, const MultidimArray< T > &m_in, MultidimArray< T > &m_out, T subs_val=(T) 0)
 
template<typename T >
void apply_cont_mask (const MultidimArray< double > &mask, const MultidimArray< T > &m_in, MultidimArray< T > &m_out)
 
template<typename T >
void compute_hist_within_binary_mask (const MultidimArray< int > &mask, MultidimArray< T > &v, Histogram1D &hist, int no_steps)
 
template<typename T >
void compute_hist_within_binary_mask (const MultidimArray< int > &mask, const MultidimArray< T > &v, Histogram1D &hist, T min, T max, int no_steps)
 
template<typename T >
int count_with_mask (const MultidimArray< int > &mask, const MultidimArray< T > &m, int mode, double th1, double th2)
 
int count_with_mask (const MultidimArray< int > &mask, const MultidimArray< std::complex< double > > &m, int mode, double th1, double th2)
 
template<typename T >
void invert_binary_mask (MultidimArray< T > &mask)
 
void rangeAdjust_within_mask (const MultidimArray< double > *mask, const MultidimArray< double > &m1, MultidimArray< double > &m2)
 

Macro Definition Documentation

◆ ALL_KINDS

#define ALL_KINDS   INT_MASK | DOUBLE_MASK

Definition at line 387 of file mask.h.

◆ BINARY_CIRCULAR_MASK

#define BINARY_CIRCULAR_MASK   1

Definition at line 365 of file mask.h.

◆ BINARY_CONE_MASK

#define BINARY_CONE_MASK   15

Definition at line 379 of file mask.h.

◆ BINARY_CROWN_MASK

#define BINARY_CROWN_MASK   2

Definition at line 366 of file mask.h.

◆ BINARY_CYLINDER_MASK

#define BINARY_CYLINDER_MASK   3

Definition at line 367 of file mask.h.

◆ BINARY_DWT_CIRCULAR_MASK

#define BINARY_DWT_CIRCULAR_MASK   13

Definition at line 377 of file mask.h.

◆ BINARY_DWT_SPHERICAL_MASK

#define BINARY_DWT_SPHERICAL_MASK   14

Definition at line 378 of file mask.h.

◆ BINARY_FRAME_MASK

#define BINARY_FRAME_MASK   4

Definition at line 368 of file mask.h.

◆ BINARY_TUBE

#define BINARY_TUBE   19

Definition at line 383 of file mask.h.

◆ BINARY_WEDGE_MASK

#define BINARY_WEDGE_MASK   16

Definition at line 380 of file mask.h.

◆ BLACKMAN_MASK

#define BLACKMAN_MASK   7

Definition at line 371 of file mask.h.

◆ BLOB_CIRCULAR_MASK

#define BLOB_CIRCULAR_MASK   17

Definition at line 381 of file mask.h.

◆ BLOB_CROWN_MASK

#define BLOB_CROWN_MASK   18

Definition at line 382 of file mask.h.

◆ COMPUTESTATS

#define COMPUTESTATS (   type)    computeStats_within_binary_mask(mask,*((MultidimArray<type>*)m.im),min_val,max_val,avg,stddev);

◆ DOUBLE_MASK

#define DOUBLE_MASK   2

Definition at line 386 of file mask.h.

◆ GAUSSIAN_MASK

#define GAUSSIAN_MASK   5

Definition at line 369 of file mask.h.

◆ INT_MASK

#define INT_MASK   1

Definition at line 385 of file mask.h.

◆ NO_MASK

#define NO_MASK   0

Definition at line 364 of file mask.h.

◆ RAISED_COSINE_MASK

#define RAISED_COSINE_MASK   6

Definition at line 370 of file mask.h.

◆ RAISED_CROWN_MASK

#define RAISED_CROWN_MASK   12

Definition at line 376 of file mask.h.

◆ READ_BINARY_MASK

#define READ_BINARY_MASK   10

Definition at line 374 of file mask.h.

◆ READ_REAL_MASK

#define READ_REAL_MASK   11

Definition at line 375 of file mask.h.

◆ SINC_BLACKMAN_MASK

#define SINC_BLACKMAN_MASK   9

Definition at line 373 of file mask.h.

◆ SINC_MASK

#define SINC_MASK   8

Definition at line 372 of file mask.h.