Laboratorio 1 - Procesamiento de Imagenes
Laboratorio 1 - Procesamiento de Imagenes
Ortiz
El objetivo de este laboratorio es familiarizar a los estudiantes con los formatos de imgenes digitales para investigacin PGM y PPM, los cuales sern usados a lo largo del curso para probar la implementacin de los diferentes filtros y tcnicas para procesamiento de imgenes.
1. Teora Algunas definiciones de imagen digital: Una imagen digital es una representacin de una imagen 2 dimensional como un conjunto finito de valores digitales llamados pxeles. Una imagen esta compuesta de pxeles discretos de brillos y/o colores cuantizados digitalmente.
Ejemplo
0 0 0 0 0 0 0
0 3 3 3 3 3 0
0 3 0 3 0 0 0
0 3 0 3 0 0 0
0 3 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 7 7 7 7 7 0
0 7 0 7 0 7 0
0 7 0 7 0 7 0
0 7 0 0 0 7 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0 11 11 11 11 0 0 11 0 0 0 0 0 11 11 11 0 0 0 11 0 0 0 0 0 11 11 11 11 0 0 0 0 0 0 0
0 0 0 0 0 0 0 15 15 15 15 0 0 15 0 0 15 0 0 15 15 15 15 0 0 15 0 0 0 0 0 15 0 0 0 0 0 0 0 0 0 0
2. Muestreo y cuantizacin Muestreo: Proceso que nos permite pasar de un espacio R2 a un espacio N2
R2
N2
Ejemplos de muestreos: 320x240, 640x480, 1024x768, etc. Cuantizacin: Escala que determina la cantidad posible de valores para un pxel.
Escala de 2 valores
0 7 0 7 0 7 0
0 7 0 7 0 7 0
0 7 0 0 0 7 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 11 11 11 11 11 0 0 0 11 11 11 0 11 0 0 0 11 11 11 11 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 15 15 15 15 15 0 0 15 15 15 15 15 15 0 0 0 15 0 0 0 0 0 0 0
0 0 0 0 0 0 0
Nmeros mgicos
P2 - PGM grey scale image, stored in ASCII, one value per pixel P3 - PPM color image, stored in ASCII, 3 values rgb per pixel P5 - PGM grey scale image stored in binary (compressed) format P6 - PPM color image stored in binary (compressed) format
4. Repaso C++ Debido a que en muchos casos los clculos numricos pueden ser bastante pesados computacionalmente, se acostumbra trabajar las implementaciones en C++ En un archivo hola.cpp colocamos: /* Programa que despliega el mensaje Hola Mundo en C++ */ #include <iostream> using namespace std; main() { cout << "Hola Mundo" << endl; // imprime "Hola Mundo" return 0; } Luego:
# c++ -o hola hola.cpp #./hola
5. Acceso a ficheros Utilice las siguientes instrucciones de forma adecuada para hacer un programa que permita mostrar por pantalla el contenido de un archivo. #include <stdio.h> FILE *fichero; fscanf( fichero , "%s", linea );
6. Para entregar Escriba un programa que permita leer una imagen en formato PPM o PGM y muestre su contenido en pantalla y que muestre un mensaje de error (explicando la inconsistencia) si el archivo esta mal formado. Escriba un programa que permita generar imgenes en formato PPMo PGM con una codificacin (ASCII o binario), cuantizacin, tamao y color o intensidad de fondo definido. Escriba un programa que permita generar las siguientes imgenes.