Home | Develop | Download | Contact
PDS Digital Signal Processing in C++


Autor
Fernando Pujaico Rivera
Fecha
2021-11-28
Versión
0.1.0

1 Descargando la biblioteca

1.1 Descargando paquete *.tar.gz

La versión 0.1.0 de la biblioteca PDS Digital Signal Processing in C++ (libpdsspmm) puede ser descargado en libpdsspmm-0.1.0.tar.gz o usando el comando:

wget http://download.savannah.gnu.org/releases/pdsplibrary/src/libpdsspmm/libpdsspmm-0.1.0.tar.gz

Es necesario tener instalado wget.

1.2 Descargando el actual código fuente no versionado

El actual código fuente no oficial de PDS Digital Signal Processing in C++ puede ser descargado usando el comando:

bzr branch bzr://bzr.savannah.nongnu.org/pdsplibrary/libpdsspmm

Es necesario tener instalado bazaar.

2 Compilando e instalando la biblioteca

Para compilar la biblioteca PDS Digital Signal Processing in C++ es necesario tener en cuenta el siguiente diagrama de dependencias de la biblioteca.

Crear/Compilar la biblioteca PDS Digital Signal Processing in C++.

Como se puede ver, son necesarios los archivos de definiciones *.hpp y las bibliotecas empaquetadas en binario (*.a o *.so).

2.1 Compilando e instalando desde código

# Creando directorio de compilación
mkdir build
cd build
# Define donde se instalará la biblioteca, ejemplo: /usr/local
# Define donde está el código fuente la biblioteca, ejemplo: /path/of/source/libpdsspmm
cmake -DCMAKE_INSTALL_PREFIX=/usr/local /path/of/source/libpdsspmm
# Compila el codigo fuente
make
# Instala la biblioteca
sudo make install

2.2 Compilando e instalando desde *.deb

# Creando directorio de compilación
mkdir build
cd build
# Define donde está el código fuente la biblioteca, ejemplo: /path/of/source/libpdsspmm
# Es obligatorio usar el el directorio de instalación en /usr
cmake -DCMAKE_INSTALL_PREFIX=/usr /path/of/source/libpdsspmm
# Compilar y crea el paquete *.deb
make package
# Instala la biblioteca
sudo dpkg -i libpdsspmm-0.1.0_ARCHITECTURE.deb

Donde ARCHITECTURE puede ser "i386", "amd64", etc.

3 Usando la biblioteca para compilar un programa

Una vez instalada la biblioteca PDS Digital Signal Processing in C++, para que esta pueda ser usada por algún otro proyecto, es necesario tener en cuenta el siguiente diagrama de dependencia de la biblioteca.

Usar/Enlazar dinámicamente la biblioteca PDS Digital Signal Processing in C++.

Para usar PDS Digital Signal Processing in C++ en un proyecto (como example.cpp), se debe agregar la siguiente cabecera al inicio del código fuente.

#include <Pds/Sp>

Esto incluirá todas las definiciones de las funciones de la biblioteca PDS Digital Signal Processing in C++.

3.1 Código de ejemplo

#include <cmath>
#include <Pds/Ra>
#include <Pds/Sp>
int main(void)
{
std::vector<Pds::Array<unsigned char>> Block;
Pds::Matrix Mag,Ang;
Block=Pds::Array<unsigned char>::ImportBmpFile("pattern.bmp");
if(Block.size()==0) {std::cout<<"Error\n"; return 0;}
Pds::Image::Gradient(Block[0],Mag,Ang);
Mag.Scale(0,255).ExportBmpFile(Pds::Colormap::Gray,"pattern_hog_magnitude.bmp");
Ang.Scale(0,255).ExportBmpFile(Pds::Colormap::Gray,"pattern_hog_angle.bmp");
Pds::Sp::PrintVersion("Version:\t");
Pds::Sp::PrintPackage("Package:\t");
return 0;
}
bool Gradient(const Pds::Array< unsigned char > &Gray, Pds::Matrix &Mag, Pds::Matrix &Angle)
Cálculo del gradiente.
void PrintPackage(std::string str)
Imprime em pantalla el nombre de la biblioteca, imprime un salto de linea al final.
void PrintVersion(std::string str)
Imprime em pantalla la versión de la biblioteca, imprime un salto de linea al final.

example.cpp

3.2 Compilando un ejemplo

Para compilar enlazando estáticamente (Statically linked) un archivo de código fuente llamado example.cpp, debe ser usado el siguiente comando

g++ -static -o example example.cpp -lpdsspmm -lpdsramm

Por otro lado si se desea compilar enlazando dinamicamente (Dynamically linked) un archivo de código fuente llamado example.cpp, debe ser usado el siguiente comando

g++ -o example example.cpp -lpdsspmm -lpdsramm

3.3 Compilando un ejemplo : usando pkg-config

Adicionalmente es posible usar pkg-config para obtener los datos de configuración del proceso de compilación.

Atención
Es necesario tener instalado pkg-config
#Statically linked.
g++ -static -o example example.cpp `pkg-config --static --libs --cflags libpdsspmm`


#Dynamically linked.
g++ -o example example.cpp `pkg-config --libs --cflags libpdsspmm`

4 Versión

Es posible conocer la version instalada de la biblioteca libpdsspmm usando el siguiente comando

pkg-config --modversion libpdsspmm

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed