32#ifndef __PDS_ARRAY_HPP__
33#define __PDS_ARRAY_HPP__
50#include <Pds/RegionRect>
69template <
typename Datum>
362 unsigned int Nel(
void)
const;
389 Datum
Get(
unsigned int lin,
unsigned int col)
const;
400 bool Set(
unsigned int lin,
unsigned int col,Datum val);
409 Datum
Get(
unsigned int id)
const;
419 const Datum &
GetRaw(
unsigned int lin,
unsigned int col)
const
421 return this->array[lin][col];
433 void SetRaw(
unsigned int lin,
unsigned int col,
const Datum &val)
435 this->array[lin][col]=val;
453 Datum &
In(
unsigned int lin,
unsigned int col);
469 Datum &
In(
unsigned int id);
533 Datum
Max(
unsigned int *
id=NULL)
const;
542 Datum
Min(
unsigned int *
id=NULL)
const;
738 std::vector<std::string> titles,
742 char delimitador=
',');
756 std::vector<std::string> &titles,
801 const std::string &TagName,
802 unsigned int ntabs=0);
818 const std::string &TagName,
819 unsigned int ntab=0);
846 const std::string &TagName);
863 const std::string &TagName);
877 const std::string &TagName);
889 const std::string &TagName,
1001 const std::vector<std::string> &titles,
1002 const std::vector<std::string> &rowtitles,
1003 const std::string &caption,
1004 const std::string &label,
1023 const std::vector<std::string> &titles,
1024 const std::string &caption,
1025 const std::string &label,
1042 const std::string &caption,
1043 const std::string &label,
1138 const unsigned char colormap[256][3],
1139 const std::string &bmpfilepath);
1160 const std::string &bmpfilepath);
1179 const std::string &bmpfilepath);
1203 bool ExportBmpFile(
const unsigned char colormap[256][3],
const std::string &filepath)
const;
1240 static std::vector<Pds::Array<Datum>>
ImportBmpFile(
const std::string &bmpfilepath);
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 bool ArrayWriteJsonInStream(std::ofstream &myfile, Datum **array, unsigned int Nlin, unsigned int Ncol, const std::string &TagName, unsigned int ntabs=0)
Salva en un archivo Json 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.
bool IsNotSimilarTo(const Pds::Array< Datum > &B) const
Verifica si las matrices son similares en tamaño.
Pds::Array< Datum > FilterMean3(void) const
Procesa la matriz A usando un filtro mean de radio 1.
static std::string ArrayXmlToString(Datum **array, unsigned int Nlin, unsigned int Ncol, const std::string &TagName)
Retorna un pds::string formateado en formato Xml con un arreglo de Nlin lineas y Ncol columnas (arreg...
static bool ArrayWriteXmlInStringStream(std::stringstream &sstream, Datum **array, unsigned int Nlin, unsigned int Ncol, const std::string &TagName)
Salva en una std::stringstream mediante un formato Xml un arreglo de Nlin lineas y Ncol columnas (arr...
void Print(void) const
Imprime en pantalla el contenido del array.
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 Datum ** ArrayReadCsvFileWithoutTitles(const std::string &filepath, char delimitador, unsigned int &Nlin, unsigned int &Ncol)
Lee de un archivo de texto un arreglo de Nlin lineas y Ncol columnas, usando el formato Csv (Comma Se...
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.
static bool ArrayWriteTexFile(const std::string &filepath, const std::string &caption, const std::string &label, Datum **array, unsigned int Nlin, unsigned int Ncol)
Salva en un archivo de texto un arreglo de Nlin lineas y Ncol columnas, usando el formato de tabla de...
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.
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.
void Print(std::string str) const
Imprime en pantalla el contenido del array.
Array(const Pds::Array< Datum > &B)
Crea un objeto de tipo Pds::Array copiando datos desde otra array. Este es un Copy assignment constru...
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 (pixeles)...
static Pds::Array< Datum > MeanSampleBlock(const std::vector< Pds::Array< Datum > > &Block)
Calcula A,la matriz media de un conjunto de N matrizes agrupadas en un std::vector.
unsigned int Ncol(void) const
Retorna el número 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.
Datum Min(unsigned int *id=NULL) const
Calcula el mínimo valor de la matriz.
Array(const Pds::Size &S, Datum val)
Crea un objeto de tipo Pds::Array con elementos inicializados con cero.
static std::vector< Pds::Array< Datum > > ImportBmpFile(const std::string &bmpfilepath)
Lee matrices de un archivo binario en formato BMP.
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...
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).
Pds::Vector HistogramIntNorm(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...
unsigned int Nlin(void) const
Retorna el número 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 ...
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).
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 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 > Scale(Datum minval, Datum maxval) const
Rescala linearmente los datos desde minval a maxval.
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.
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...
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.
Datum & In(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...
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 * 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)...
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...
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,...
Pds::Vector HistogramIntNorm(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 bool ArrayWriteXmlInStream(std::ofstream &myfile, Datum **array, unsigned int Nlin, unsigned int Ncol, const std::string &TagName)
Salva en un archivo Xml un arreglo de Nlin lineas y Ncol columnas (arreglo de arreglos).
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...
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 = ....
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 ** ArrayReadCsvFile(const std::string &filepath, char delimitador, std::vector< std::string > &titles, unsigned int &Nlin, unsigned int &Ncol)
Lee de un archivo de texto un arreglo de Nlin lineas y Ncol columnas, usando el formato Csv (Comma Se...
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).
const Datum & GetRaw(unsigned int lin, unsigned int col) const
Retorna una variable Datum en la posición (lin,col) de la array.
Pds::Matrix Centroids(const Pds::Matrix &X) const
calcula los centroides de las muestras en la matriz X, La matriz tiene L muestras (lineas) de N eleme...
unsigned int Nel(void) const
Retorna el número de elementos de la array (Nlin x Ncol).
static bool ArrayWriteTexFile(const std::string &filepath, const std::vector< std::string > &titles, const std::vector< std::string > &rowtitles, const std::string &caption, const std::string &label, Datum **array, unsigned int Nlin, unsigned int Ncol)
Salva en un archivo de texto un arreglo de Nlin lineas y Ncol columnas, usando el formato de tabla de...
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).
bool Fill(Datum val)
Inicializa la array con el valor val.
Pds::RegionRect GetRegion(void) const
Retorna una variable Pds::RegionRect desde la posicion (0,0), con ancho y alto (Mat....
static Datum ** ArrayAllocate(unsigned int Nlin, unsigned int Ncol)
crea dinámicamente un arreglo de Nlin lineas y Ncol columnas
Pds::Size Size(void) const
Retorna un objeto de tipo Pds::Size con el número de lineas y columans.
static std::string ArrayJsonToString(Datum **array, unsigned int Nlin, unsigned int Ncol, const std::string &TagName, unsigned int ntab=0)
Retorna un string en formato Json con datos de un arreglo de Nlin lineas y Ncol columnas (arreglo de ...
Datum Max(unsigned int *id=NULL) const
Calcula el máximo valor de la matriz.
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 ...
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...
static bool ArrayWriteTexFile(const std::string &filepath, const std::vector< std::string > &titles, const std::string &caption, const std::string &label, Datum **array, unsigned int Nlin, unsigned int Ncol)
Salva en un archivo de texto un arreglo de Nlin lineas y Ncol columnas, usando el formato de tabla de...
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 ** 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.
Datum & In(unsigned int id)
Retorna una variable Datum en la posición (id) de la array. Hace una verificación para evitar leer o ...
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 Datum ** ArrayXmlFromString(const std::string &str, const std::string &TagName, unsigned int &Nlin, unsigned int &Ncol)
Retorna un arreglo de arreglos de de Nlin lineas y Ncol columnas leyendo los datos desde un std::stri...
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.
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...
const std::string Matrix
Tag de un objeto de tipo Pds::Ra::Tag::Matrix.
std::string Colormap
Corlormap usado en el código octave. Por defecto:
Nombre de espacio para Pds (Procesamiento Digital de Senales)