libcrn  3.9.5
A document image processing library
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | List of all members
crn::MatrixComplex Class Reference

Complex matrix class. More...

#include <CRNMatrixComplex.h>

+ Inheritance diagram for crn::MatrixComplex:
+ Collaboration diagram for crn::MatrixComplex:

Public Member Functions

 MatrixComplex (const Matrix< std::complex< double >> &m)
 
 MatrixComplex (Matrix< std::complex< double >> &&m)
 
 MatrixComplex (const MatrixComplex &)=default
 
 MatrixComplex (MatrixComplex &&)=default
 
virtual ~MatrixComplex () override=default
 Destructor. More...
 
MatrixComplexoperator= (const MatrixComplex &)=default
 
MatrixComplexoperator= (MatrixComplex &&)=default
 
void GrowToPowerOf2 (bool make_square, const std::complex< double > &fill_value=std::complex< double >(0, 0))
 Grows the matrix to power of 2 sizes (for FFT) More...
 
MatrixDouble MakeModule () const
 Returns a matrix containing the modules of the inner values. More...
 
void FFT (bool direct)
 Inplace fast Fourier transform. More...
 
std::pair< Point2DInt, double > CrossCorrelation (const MatrixComplex &other, const std::complex< double > &fill1=std::complex< double >(0, 0), const std::complex< double > &fill2=std::complex< double >(0, 0))
 Cross correlation. More...
 
- Public Member Functions inherited from crn::Matrix< std::complex< double > >
 Matrix (size_t nrow, size_t ncol, const std::complex< double > &value=std::complex< double >(0))
 Constructor. More...
 
 Matrix (const std::vector< std::vector< std::complex< double > >> &m)
 Constructor from std::vector matrix. More...
 
 Matrix (const std::vector< std::complex< double > > &vect, Orientation ori=Orientation::VERTICAL)
 Constructor from std::vector 1D vector. More...
 
 Matrix (std::vector< std::complex< double > > &&vect, Orientation ori=Orientation::VERTICAL)
 Constructor from std::vector 1D vector. More...
 
 Matrix (const Matrix &)=default
 
 Matrix (const Matrix< Y > &m)
 
 Matrix (Matrix &&)=default
 
virtual ~Matrix () override=default
 Destructor. More...
 
Matrixoperator= (const Matrix &)=default
 
Matrixoperator= (Matrix &&)=default
 
void Swap (Matrix &m)
 
size_t GetRows () const noexcept
 Returns the number of rows. More...
 
size_t GetCols () const noexcept
 Returns the number of columns. More...
 
const std::complex< double > & At (size_t pos) const noexcept
 
std::complex< double > & At (size_t pos) noexcept
 
const std::complex< double > & At (size_t r, size_t c) const noexcept
 
std::complex< double > & At (size_t r, size_t c) noexcept
 
void SetAll (const std::complex< double > &v)
 Set all elements. More...
 
void Negative ()
 Change sign for all elements. More...
 
void SetRow (size_t r, const std::vector< std::complex< double > > &row)
 Sets the values of a row. More...
 
void SetColum (size_t c, const std::vector< std::complex< double > > &col)
 Sets the values of a column. More...
 
void IncreaseElement (size_t r, size_t c, const std::complex< double > &delta)
 Increases the value of an element. More...
 
void IncreaseRow (size_t r, const std::complex< double > &v)
 Increase one row from matrix. More...
 
void IncreaseColumn (size_t c, const std::complex< double > &v)
 Increase one column from matrix. More...
 
Matrixoperator+= (const Matrix &m)
 
Matrixoperator-= (const Matrix &m)
 
Matrixoperator*= (const Matrix &m)
 
Matrixoperator*= (double d)
 Scaling. More...
 
bool operator== (const Matrix &m) const
 
bool operator!= (const Matrix &m) const
 
Matrixoperator/= (double d)
 Scaling. More...
 
void MultRow (size_t r, double v)
 Scale one row from matrix. More...
 
void MultColumn (size_t c, double v)
 Scale one column from matrix. More...
 
void CenterColumns ()
 Centers all columns by subtracting the mean for each column. More...
 
void ReduceColumns (bool centered=true)
 Reduces all columns by dividing by the standard deviation of each column. More...
 
void SwapRows (size_t r1, size_t r2)
 Swap two rows in matrix. More...
 
void SwapColumns (size_t c1, size_t c2)
 Swap two columns in matrix. More...
 
void NormalizeForConvolution ()
 Normalizes the matrix to be used for convolution. More...
 
TypeInfo< std::complex< double >
>::SumType 
CumulateCells () const
 
std::complex< double > GetMin () const
 
std::complex< double > GetMax () const
 
std::pair< size_t, size_t > Argmin () const
 
std::pair< size_t, size_t > Argmax () const
 
Matrix MakeTranspose ()
 Create transposition. More...
 
virtual MatrixTranspose ()
 Inplace transposition. More...
 
Matrix MakeRowAsColumn (size_t r) const
 Creates a column matrix from a row. More...
 
Matrix MakeRow (size_t r) const
 Extract a row from current matrix. More...
 
Matrix MakeColumn (size_t k) const
 Extracts one column from matrix. More...
 
size_t ArgmaxInRow (size_t r) const
 Returns the row index of the maximal element in a row. More...
 
size_t ArgmaxInColumn (size_t c) const
 Returns the row index of the maximal element in a column. More...
 
size_t CountNullCellsInRow (size_t r) const
 Counts null cells in row. More...
 
size_t CountNullCellsInColumn (size_t c) const
 Counts null cells in column. More...
 
size_t CountNullCells () const
 
Matrix MakeColumnMeans () const
 
Matrix MakeColumnDeviations (const Matrix &means) const
 
Matrix MakeColumnDeviations (bool zero_means=false) const
 standard deviation of patterns stored as the rows of a data matrix More...
 
Matrix MakeCovariance () const
 
std::complex< double > * operator[] (size_t r)
 Returns a row. More...
 
const std::complex< double > * operator[] (size_t r) const
 Returns a row. More...
 
const std::vector
< std::complex< double > > & 
Std () const &noexcept
 
std::vector< std::complex
< double > > 
Std ()&&
 
IMG ToImage () const
 Converts to image. More...
 
String ToString () const
 Prints matrix into a string. More...
 
- Public Member Functions inherited from crn::Object
virtual ~Object ()=default
 

Additional Inherited Members

- Protected Types inherited from crn::Matrix< std::complex< double > >
using datatype = std::vector< std::complex< double > >
 
- Protected Member Functions inherited from crn::Matrix< std::complex< double > >
bool areValidIndexes (size_t r, size_t c) const
 checks the validity of indexes More...
 
- Protected Attributes inherited from crn::Matrix< std::complex< double > >
datatype data
 
size_t rows
 
size_t cols
 

Detailed Description

Complex matrix class.

Matrix containing complex numbers

Author
Yann LEYDIER
Date
April 2013
Version
0.2

Definition at line 46 of file CRNMatrixComplex.h.

Constructor & Destructor Documentation

crn::MatrixComplex::MatrixComplex ( const Matrix< std::complex< double >> &  m)
inline

Definition at line 50 of file CRNMatrixComplex.h.

crn::MatrixComplex::MatrixComplex ( Matrix< std::complex< double >> &&  m)
inline

Definition at line 51 of file CRNMatrixComplex.h.

crn::MatrixComplex::MatrixComplex ( const MatrixComplex )
default
crn::MatrixComplex::MatrixComplex ( MatrixComplex &&  )
default
virtual crn::MatrixComplex::~MatrixComplex ( )
overridevirtualdefault

Destructor.

Member Function Documentation

std::pair< Point2DInt, double > MatrixComplex::CrossCorrelation ( const MatrixComplex other,
const std::complex< double > &  fill1 = std::complex<double>(0, 0),
const std::complex< double > &  fill2 = std::complex<double>(0, 0) 
)

Cross correlation.

Cross correlation

Parameters
[in]otherthe matrix to match
[in]fill1the fill pattern for current matrix (to grow to power of 2 dimensions)
[in]fill2the fill pattern for the other matrix (to grow to power of 2 dimensions)
Returns
the best match displacement and power

Definition at line 190 of file CRNMatrixComplex.cpp.

void MatrixComplex::FFT ( bool  direct)

Inplace fast Fourier transform.

Definition at line 157 of file CRNMatrixComplex.cpp.

void MatrixComplex::GrowToPowerOf2 ( bool  make_square,
const std::complex< double > &  fill_value = std::complex<double>(0, 0) 
)

Grows the matrix to power of 2 sizes (for FFT)

Grows the matrix to power of 2 sizes (for FFT)

Parameters
[in]make_squareshall the resulting matrix be square?
[in]fill_valuethe value used to fill the blanks

Definition at line 107 of file CRNMatrixComplex.cpp.

MatrixDouble MatrixComplex::MakeModule ( ) const

Returns a matrix containing the modules of the inner values.

Returns
a matrix containing the modules of the inner values

Definition at line 141 of file CRNMatrixComplex.cpp.

MatrixComplex& crn::MatrixComplex::operator= ( const MatrixComplex )
default
MatrixComplex& crn::MatrixComplex::operator= ( MatrixComplex &&  )
default

The documentation for this class was generated from the following files: