Xmipp  v3.23.11-Nereus
Classes | Macros
histogram.h File Reference
#include "multidim_array.h"
#include "multidim_array_generic.h"
#include "metadata_label.h"
Include dependency graph for histogram.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Histogram1D
 
class  CDF
 
class  IrregularHistogram1D
 
class  Histogram2D
 

Macros

#define INSERT_VALUE(histogram, value)
 

Functions

Functions related to histograms 1D
template<typename T >
void compute_hist (const MultidimArray< T > &array, Histogram1D &hist, int no_steps)
 
void compute_hist (const MultidimArrayGeneric &array, Histogram1D &hist, int no_steps)
 
template<typename T >
void compute_hist (const std::vector< T > &v, Histogram1D &hist, int no_steps=100)
 
template<typename T >
void compute_hist (const MultidimArray< T > &v, Histogram1D &hist, double min, double max, int no_steps)
 
void compute_hist (const MultidimArrayGeneric &v, Histogram1D &hist, double min, double max, int no_steps)
 
template<typename T >
void compute_hist (const MultidimArray< T > &v, Histogram1D &hist, const Matrix1D< int > &corner1, const Matrix1D< int > &corner2, int no_steps=100)
 
double detectability_error (const Histogram1D &h1, const Histogram1D &h2)
 
double KLDistance (const Histogram1D &h1, const Histogram1D &h2)
 
template<typename T >
double effective_range (const T &v, double percentil_out=0.25)
 
template<typename T >
void reject_outliers (T &v, double percentil_out=0.25)
 
template<typename T >
void histogram_equalization (MultidimArray< T > &v, int bins=8)
 
Functions related to histograms 2D

The vectors can be of any numerical type (short int, int, double, ...), but both of the same type. Vectors must be of the same shape, the first element of v1 and the first of v2 define the position were the first point will be inserted in the histogram, then the second of v1 and of v2, ... That is, the elements of v1 and v2 serve as coordinates within the histogram. The number of steps must always be given.

template<typename T >
void compute_hist (const T &v1, const T &v2, Histogram2D &hist, int no_steps1, int no_steps2)
 
template<typename T >
void compute_hist (const MultidimArray< T > &v1, const MultidimArray< T > &v2, Histogram2D &hist, double m1, double M1, double m2, double M2, int no_steps1, int no_steps2)
 

Macro Definition Documentation

◆ INSERT_VALUE

#define INSERT_VALUE (   histogram,
  value 
)
Value:
{\
if (value == histogram.hmax) { \
size_t iii = XSIZE(histogram) - 1; \
++DIRECT_A1D_ELEM(histogram, iii); \
++histogram.no_samples; \
} else { \
size_t iii = (size_t) ((value - histogram.hmin) * histogram.istep_size); \
if (iii >= 0 && iii < XSIZE(histogram)) \
{ \
++DIRECT_A1D_ELEM(histogram, iii); \
++histogram.no_samples; \
} \
} \
}
#define DIRECT_A1D_ELEM(v, i)
#define XSIZE(v)

Insert value as a macro

Definition at line 205 of file histogram.h.