Hecho por:
- Diego Alejandro Bayona - dbayonac
- Gabriel Perez Santamaria - gaperezsa
Se implementan 4 filtros de escala de grises para 3 tamanos de imagen
- OpenCV
- lpthread
Comando para compilar:
g++ image-effects.cpp -o filtros -lpthread -fopenmp `pkg-config --cflags --libs opencv4`
Si tiene una instalacion diferente de opencv basta con cambiar "opencv4" por "opencv" o "opencv2" en los include.
Comando para correr efectos:
./filtros [nombre_src] [nombre_dst] [filtro] [parametros de filtro] [num_hilos]
- nombre_src: ubicacion y nombre de la imagen fuente
- nombre_dst: ubicacion y nombre de la imagen destino
- filtro: 1-4 que filtro se quiere aplicar:
- 1 gris promedio
- 2 luma
- 3 capas
- 4 granular
- parametros de filtro: si el filtro lo requiere se pasan la cantidad de capas a utilizar, en caso filtro 1 o 2 omitir este parametro
- num_hilos: si es 1 se corre secuencialmente, en caso contrario se utilizara la cantidad de hilos especificados
Ejemplo:
./filtros 4K.jpg 4K_withfilter4.jpg 4 3 16
Comando para correr script de python: Permite verificar la funcionalidad completa del programa y guarda los datos en un csv indicado. Primero se debe compilar el programa c++ como fue especificado para que el script funcione correctamente.
chmod +x script_ejecutar_todo.py
./script_ejecutar_todo.py
Se implementan 3 filtros de escala de grises para 3 tamanos de imagen utilizando CUDA
- CUDA
- OpenCV junto a las librerias extra para trabajar con CUDA
Comando para compilar:
nvcc image-effects.cu -o filtros `pkg-config --cflags --libs opencv4`
Comando para correr efectos:
./filtros [nombre_src] [nombre_dst] [filtro] [parametros de filtro] [num_hilos] [num_bloques]
- nombre_src: ubicacion y nombre de la imagen fuente
- nombre_dst: ubicacion y nombre de la imagen destino
- filtro: 1-4 que filtro se quiere aplicar:
- 1 gris promedio
- 2 luma
- 3 capas
- 4 granular
- parametros de filtro: si el filtro lo requiere se pasan la cantidad de capas a utilizar, en caso filtro 1 o 2 omitir este parametro
- num_hilos: se utilizara la cantidad de hilos especificados
- num_bloques: se utilizara la cantidad de bloques especificados
Comando para correr script de python: Permite verificar la funcionalidad completa del programa y guarda los datos en un csv indicado. Primero se debe compilar el programa nvcc como fue especificado para que el script funcione correctamente.
chmod +x scrip_cuda.py
./scrip_cuda.py
Se implementan 3 filtros de escala de grises para 3 tamanos de imagen utilizando MPI y OMP
- MPI
- OpenCV
Comando para compilar:
sudo mpic++ image-effects-mpi.cpp -o filtros_mpi -fopenmp `pkg-config --cflags --libs opencv4`
Comando para correr efectos:
mpirun -np [num_nodes] --hostfile mpi_hosts ./filtros_mpi [nombre_src] [nombre_dst] [filtro] [parametros de filtro] [num_hilos]
- num_nodes: cantidad de procesadores a usar
- nombre_src: ubicacion y nombre de la imagen fuente
- nombre_dst: ubicacion y nombre de la imagen destino
- filtro: 1-4 que filtro se quiere aplicar:
- 1 gris promedio
- 2 luma
- 3 capas
- 4 granular
- parametros de filtro: si el filtro lo requiere se pasan la cantidad de capas a utilizar, en caso filtro 1 o 2 omitir este parametro
- num_hilos: se utilizara la cantidad de hilos especificados
Comando para correr script de python: Permite verificar la funcionalidad completa del programa y guarda los datos en un csv indicado. Primero se debe compilar el programa nvcc como fue especificado para que el script funcione correctamente.
chmod +x script_mpi.py
./script_mpi.py