32 #ifndef __PDS_ARRAY_HPP__
33 #define __PDS_ARRAY_HPP__
48 #include <Pds/RegionRect>
66 template <
typename Datum>
336 unsigned int Nel(
void)
const;
363 Datum
Get(
unsigned int lin,
unsigned int col)
const;
374 bool Set(
unsigned int lin,
unsigned int col,Datum val);
383 Datum
Get(
unsigned int id)
const;
393 const Datum &
GetRaw(
unsigned int lin,
unsigned int col)
const
395 return this->array[lin][col];
407 void SetRaw(
unsigned int lin,
unsigned int col,
const Datum &val)
409 this->array[lin][col]=val;
420 Datum &
At(
unsigned int lin,
unsigned int col);
429 Datum &
At(
unsigned int id);
564 static std::vector<Pds::Array<Datum>>
ImportBmpFile(
const std::string &bmpfilepath);
705 bool ExportBmpFile(
const unsigned char colormap[256][3],
const std::string &filepath)
const;
745 const unsigned char colormap[256][3],
746 const std::string &bmpfilepath);
766 const std::string &bmpfilepath);
784 const std::string &bmpfilepath);
811 static bool ArrayWriteCsvFile(
const std::string &filepath,std::vector<std::string> titles,Datum **
array,
unsigned int Nlin,
unsigned int Ncol,
char delimitador=
',');
La clase tipo Array . Esta clase genera una agrupación de 2 datos. Para usar incluir Pds/Array.
La clase tipo Pds::Matrix . Esta clase genera una matriz de Nlin lineas y Ncol columnas....
La estructura tipo Pds::RegionRect . Esta estructura genera una region. Para usar incluir <Pds/Region...
La clase tipo Pds::Size . Esta clase genera un objeto con dos parametros Nlin y Ncol....
La clase tipo Pds::Vector . Esta clase genera una matriz de Nlin lineas y 1 columna....
bool IsNotSimilarTo(const Pds::Matrix &B) const
Verifica si las matrices son similares en tamaño.
Array(void)
Crea un objeto de tipo Pds::Array.
static Datum ** ArrayLoad(const std::string &filepath, unsigned int &Nlin, unsigned int &Ncol)
Lee de un archivo un arreglo de Nlin lineas y Ncol columnas (arreglo de arreglos).
Array(const Pds::Matrix &B)
Crea un objeto de tipo Pds::Array copiando datos desde un Pds::Matrix.
Array(const Pds::Size &S)
Crea un objeto de tipo Pds::Array con elementos inicializados con cero.
Pds::Array< Datum > FilterMean3(void) const
Procesa la matriz A usando un filtro mean de radio 1.
bool IsNotSimilarTo(const Pds::Array< Datum > &B) const
Verifica si las matrices son similares en tamaño.
void Print(void) const
Imprime en pantalla el contenido del array.
static Datum ** ArrayColFromString(const std::string &str, unsigned int &Nlin, unsigned int &Ncol)
Convierte un sdt::string con arreglo de Nlin lineas y 1 columna a un arreglo.
bool Set(unsigned int lin, unsigned int col, Datum val)
Establece una variable Datum en la posición (lin,col) de la array. Hace una verificación para evitar ...
static bool ArrayWriteCsvFile(const std::string &filepath, Datum **array, unsigned int Nlin, unsigned int Ncol, char delimitador=',')
Salva en un archivo de texto un arreglo de Nlin lineas y Ncol columnas, usando el formato Csv (Comma ...
bool FillRandI(unsigned int min, unsigned int max)
Inicializa la array con números enteros desde min a max.
bool Reshape(unsigned int Nlin, unsigned int Ncol)
Remodela los datos internos de la array y la convierte en una array de tamaño diferente,...
static bool ArrayWriteBmpWithColormap(Datum **array, unsigned int Nlin, unsigned int Ncol, const unsigned char colormap[256][3], const std::string &bmpfilepath)
Escribe los datos de una matriz en un archivo de en formato BMP.
void Print(std::string str) const
Imprime en pantalla el contenido del array.
static Datum * ArrayToLineArray(Datum **array, unsigned int Nlin, unsigned int Ncol)
Convierte a un arreglo unidimensional un arreglo de Nlin lineas y Ncol columnas (arreglo de arreglos)...
Array(const Pds::Array< Datum > &B)
Crea un objeto de tipo Pds::Array copiando datos desde otra array. Este es un Copy assignment constru...
static Datum ** ArrayLoadLineFromStream(std::ifstream &ifs, unsigned int &Nlin, unsigned int &Ncol)
Lee un arreglo de Nlin=1 lineas y Ncol columnas desde una linea de um archivo. Se entiende que una li...
Pds::Matrix Centroids(const std::vector< Pds::Matrix > &Block) const
calcula los centroides de las muestras en el bloque Block. EL bloque Block tiene L muestras de N elem...
unsigned int Ncol(void) const
Retorna el numero de columnas de la array.
void MakeEmpty(void)
libera los datos internos de la array y la convierte en una array nula. es decir con lineas y columna...
static bool ArrayWriteBmp(Datum **arrayr, Datum **arrayg, Datum **arrayb, unsigned int Nlin, unsigned int Ncol, const std::string &bmpfilepath)
Escribe los datos de una matriz en un archivo de en formato BMP.
static Datum ** ArrayColLoad(const std::string &filepath, unsigned int &Nlin, unsigned int &Ncol)
Lee de un archivo un arreglo de Nlin lineas y Ncol=1 columna (arreglo de arreglos).
static Datum ** ArrayAllocate(unsigned int Nlin, unsigned int Ncol)
crea dinámicamente un arreglo de Nlin lineas y Ncol columnas
static Datum ** ArrayAllocate(const Pds::Matrix &A)
crea dinámicamente un arreglo de A.Nlin() lineas y A.Ncol() columnas, con los datos copiados de una m...
unsigned int Nlin(void) const
Retorna el numero de lineas de la array.
static bool ArrayWriteCsvFile(const std::string &filepath, std::vector< std::string > titles, Datum **array, unsigned int Nlin, unsigned int Ncol, char delimitador=',')
Salva en un archivo de texto un arreglo de Nlin lineas y Ncol columnas, usando el formato Csv (Comma ...
Array(unsigned int Nlin, unsigned int Ncol, Datum val)
Crea un objeto de tipo Pds::Array.
static void ArrayRelease(Datum **&array, unsigned int Nlin)
Libera un arreglo de Nlin lineas y Ncol columnas (arreglo de arreglos) Adicionalmente carga con NULL ...
bool IsEmpty(void) const
Verifica si la array es nula es decir con lineas o columnas cero o arreglo NULL.
static Pds::Array< Datum > MeanBlock(const std::vector< Pds::Array< Datum >> &Block)
Calcula A,la matriz media de un conjunto de N matrizes agrupadas en un std::vector.
static std::string ArrayToString(Datum **array, unsigned int Nlin, unsigned int Ncol)
Convierte a un sdt::string un arreglo de Nlin lineas y Ncol columnas (arreglo de arreglos).
Pds::Array< Datum > & operator=(const Pds::Array< Datum > &B)
Copia en si mismo (A), una array B. Este operador es similar al método Copy(). No importa el tamaño d...
static bool ArraySaveInStream(std::ofstream &myfile, Datum **array, unsigned int Nlin, unsigned int Ncol)
Salva en un archivo un arreglo de Nlin lineas y Ncol columnas (arreglo de arreglos).
void SetRaw(unsigned int lin, unsigned int col, const Datum &val)
Establece una variable Datum en la posición (lin,col) de la array.
Pds::Vector HistogramNorm(const Pds::RegionRect &R, unsigned int min, unsigned int max) const
Retorna un vector con el histograma desde min hasta max (valores enteros). Elementos con valores meno...
static Datum ** ArrayFromString(const std::string &str, unsigned int &Nlin, unsigned int &Ncol)
Convierte un sdt::string con arreglo de Nlin lineas y Ncol columnas a un arreglo.
const Datum & GetRaw(unsigned int lin, unsigned int col) const
Retorna una variable Datum en la posición (lin,col) de la array.
Datum Get(unsigned int lin, unsigned int col) const
Retorna una variable Datum en la posición (lin,col) de la array. Hace una verificación para evitar le...
Array(const std::vector< Datum > &b)
Crea un objeto de tipo Pds::Array copiando datos desde std::vector.
Datum Sum(void) const
Retorna la suma de todos los elementos del array.
bool ExportBmpFile(const Pds::Array< unsigned char > &Colormap, const std::string &filepath) const
Escribe en una matriz en un archivo binario en formato BMP. Losdatos deben ir de 0 a 255,...
static Datum ** ArrayAllocate(unsigned int Nlin, unsigned int Ncol, Datum val)
crea dinámicamente un arreglo de Nlin lineas y Ncol columnas, con elementos inicializado con un valor...
bool FillRandC(double p1)
Inicializa la array con números con unos y ceros con una probabilidad de 1 igual a p1.
Datum Get(unsigned int id) const
Retorna una variable Datum en la posición (id) de la array. Hace una verificación para evitar leer fu...
Pds::Array< Datum > FilterMean3b(void) const
Procesa la matriz A usando un filtro mean de radio 1.
bool ExportBmpFile(const unsigned char colormap[256][3], const std::string &filepath) const
Escribe en una matriz en un archivo binario en formato BMP. Losdatos deben ir de 0 a 255,...
Datum & At(unsigned int lin, unsigned int col)
Retorna una variable Datum en la posición (lin,col) de la array. Hace una verificación para evitar le...
Array(unsigned int Nlin, unsigned int Ncol)
Crea un objeto de tipo Pds::Array.
bool Copy(const Pds::Array< Datum > &B)
Copia en si mismo (A), el contenido de una array B. Este método es similar a usar el operador = ....
static std::vector< Pds::Array< Datum > > ImportBmpFile(const std::string &bmpfilepath)
Lee matrices de un archivo binario en formato BMP.
Pds::Matrix Centroids(const Pds::Matrix &X) const
calcula los centroides de las muestras en X. La matriz tiene L muestras (lineas) de N elementos (colu...
unsigned int Nel(void) const
Retorna el numero de elementos de la array (Nlin x Ncol).
Pds::Array< Datum > Resize(double factor) const
Retorna una matriz B (size: NlinB,NcolB) resultado de aplicar un subsampling de la matriz A (size: Nl...
static Datum ** ArrayLoadFromStream(std::ifstream &ifs, unsigned int Nlin, unsigned int Ncol)
Lee de un archivo un arreglo de Nlin lineas y Ncol columnas (arreglo de arreglos).
static bool ArraySave(const std::string &filepath, Datum **array, unsigned int Nlin, unsigned int Ncol)
Salva en un archivo un arreglo de Nlin lineas y Ncol columnas (arreglo de arreglos).
Pds::RegionRect GetRegion(void) const
Retorna una variable Pds::RegionRect desde la posicion (0,0), con ancho y alto (Mat....
Pds::Size Size(void) const
Retorna un objeto de tipo Pds::Size con el numero de lineas y columans.
static Datum ** ArrayAllocate(const Pds::Array< Datum > &A)
crea dinámicamente un arreglo de A.Nlin() lineas y A.Ncol() columnas, con los datos copiados de una m...
static bool ArrayWriteMatFile(FILE *fp, const char *pname, Datum **arrayr, Datum **arrayi, unsigned int Nlin, unsigned int Ncol)
Escribe en un archivo binario en formato de octave un arreglo de Nlin lineas y Ncol columnas (arreglo...
static Datum ** ArrayReshape(const Pds::Array< Datum > &A, unsigned int Nlin, unsigned int Ncol)
crea dinámicamente un arreglo de Nlin lineas y Ncol columnas, con los datos copiados de una matriz A ...
Datum & At(unsigned int id)
Retorna una variable Datum en la posición (id) de la array. Hace una verificación para evitar leer o ...
Pds::Vector HistogramNorm(unsigned int min=0, unsigned int max=255) const
Retorna un vector con el histograma desde min hasta max (valores enteros). Elementos con valores meno...
static bool ArrayWriteMatFile(FILE *fp, const char *pname, Datum **array, unsigned int Nlin, unsigned int Ncol)
Escribe en un archivo binario en formato de octave un arreglo de Nlin lineas y Ncol columnas (arreglo...
static bool ArrayWriteBmpWithColormap(Datum **array, unsigned int Nlin, unsigned int Ncol, const Pds::Array< unsigned char > &Colormap, const std::string &bmpfilepath)
Escribe los datos de una matriz en un archivo de en formato BMP.
Nombre de espacion para PDS (Procesamiento Digital de Senales)