Sei sulla pagina 1di 22

Universidad San Francisco de Quito

Ciencia Computacional
Profesor: Julio Ibarra
Informe de trabajo Final Enero 2015
Juan Anzieta
Este informe tiene por objetivo hacer una descripcin sucinta acerca de los programas que
se crearon, su utilizacin y los resultados que se obtienen de cada uno. Para realizar esto se
enumeran los tems que se nos solicitaron en el documento con los requerimientos del
trabajo final y se responde qu programa cubre dicho tem. Despus de enumerar los tems
con las respectivas carpetas que contienen los programas se empieza la descripcin de los
mismos.
Cabe recalcar que la carpeta que contiene este archivo contiene las subcarpetas con cada
programa y las imgenes dentro de ellas con las que se trabajaron los programas y las
imgenes resultado que se obtuvieron tambin.
Otra caracterstica general a todos los programas es la forma de uso de los mismos.
En general el usuario debe primero tener todas las siguientes libreras disponibles:

import sys
from PyQt4 import QtGui, QtCore
from PyQt4.QtGui import QFileDialog

from matplotlib.backends.backend_qt4agg
FigureCanvas

import

FigureCanvasQTAgg

as

from matplotlib.backends.backend_qt4agg import NavigationToolbar2QTAgg as


NavigationToolbar
import matplotlib.pyplot as plt
from PIL import Image

from pylab import *


from numpy import *
import numpy as np

import random

Despus el usuario deber ingresar en el directorio (carpeta) del programa deseado y desde
consola (terminal) deber ingresar:
$python NOMBRE.py
Donde NOMBRE es el nombre del programa en ese directorio. Esto inicializar cada
programa con sus caractersticas propias.
A continuacin se enumeran los tems solicitados y los programas que los cubren:

Lectura e impresin de imgenes: al menos png, jpeg, bmp.


o Programa que lo cubre: TODOS
Este requerimiento en particular no tiene un programa propio desarrollado
pues era muy simple y todos los otros programas hacen uso de esta
caracterstica.
o Carpeta: TODAS
Filtros de escalamiento, factor t con slider entre 0 y 10. Algoritmos de interpolacin
lineal y duplicacin, el propuesto de promedio y llenado por filas y columnas.
o Programa que lo cubre: lineal.py, zoomer.py
o Carpeta: Programa_Umbral, Programa_Zoom
Transformaciones de intensidad con funciones logartmicas, y potencia .
o Programa que lo cubre: log1.py, gamma1.py
o Carpeta: Programa_Logaritmo, Programa_Potencia
Histogramas de frecuencias, ecualizacin de histograma.
o Programa que lo cubre: hist.py
o Carpeta: Programa_Histograma
Operaciones bsicas entre imgenes: suma, resta, multiplicacin, clculo del
recproco de una imagen.
o Programa que lo cubre: multi.py
o Carpeta: Programa_Operaciones_Basicas

Operaciones booleanas entre imgenes.


o Programa que lo cubre: boole.py
o Carpeta: Programa_Operaciones_Booleanas
Binarizacin de imgenes con uno y dos valores extremos.
o Programa que lo cubre: binario.py
o Carpera: Programa_Planos_Binarios
Filtro pasabajo, filtro pasa alto.
o Programa que lo cubre: fftfilt.py
o Carpeta: Programa_Transformada_de_Fourier
Programar la funcin convolucin para el filtrado con ventanas de tamao 3x3 y
5x5.
o Programa que lo cubre: convgen.py
o Carpeta: Programa_Mascaras_Genericas
Filtro mediana, laplaciano y gradiente.
o Programa que lo cubre: convfil.py
o Carpeta: Programa_Mascaras_Especiales
Grficos planos binarios de profundida 8.
o Programa que lo cubre: binario.py*
o Carpera: Programa_Planos_Binarios*
Este programa se uni con el programa de binarizacin de imgenes con uno
y dos valores extremos y se generaliz a varios valores extremos para
efectos prcticos y demostrativos de este trabajo.

Ahora se procede a describir cada programa. Para cada uno de ellos las imgenes mostradas
que se usaron se encuentran en las respectivas carpetas. Todos los programas deben abrir
una (o ms) imagen(es) y tiene la capacidad de guardar las imgenes donde la ltima
modificacin ser la imagen guardada. Los programas funcionan con imgenes
normalizadas excepto cuando se indica lo contrario. Es decir la gama de valores en escala
de grises va de 0.0 a 1.0 al menos que se indique un programa con alguna excepcin (por
ejemplo el programa de niveles binarios).
lineal.py
Es el programa que dado un valor umbral transforma la imagen a una imagen blanco y
negro. Se basa en una operacin sobre los ndices de tal forma que a los valores bajo un

valor los lleve a 0 y sobre un valor los lleve a 1.0.

zoomer.py
Este programa tiene 3 funciones. Aumentar una imagen de manera normal es decir
multiplicando filas y columnas y llenndolas con los mismos valores. Duplicar la imagen
de manera promedio (es decir cuando los pixeles nuevos son el promedio de los anteriores
y los siguientes). Reducir la imagen mediante borrado de filas y columnas impares.
Cada vez que se quiere aplicar otra operacin se debe resetear la imagen (para volver a la
original) o se debe guardar en memoria la que se alter para modificarla an ms, o
guardarla en disco.
Para demostrar el uso de este programa primero se redujo la imagen 2 veces (primera
figura) y despus se le aplic el aumento normal (segunda figura) y luego el aumento
promedio (tercera figura), aunque el programa puede aumentar la imagen original si se
desea aunque esta no alcance en la pantalla de la interfaz de usuario (cuarta figura, se puede
guardar la imagen aumenta de todas formas).

Tambin cabe mencionar que ya que el aumento promedio duplica las dimensiones de la imagen
cada vez y adems hace clculos de promedio es una operacin bastante costosa a nivel
computacional y por eso se limit su uso hasta 4 veces.

log1.py
Este programa aplica una transformacin escalada con logaritmo en base 2 a cada uno de los
pixeles.

gamma1.py
Este programa aplica la funcin potencia a cada pixel con la posibilidad de modificar los valores.

hist.py
Este programa muestra el histograma de la imagen original y lo ecualiza siguiendo la frmula del
libro 3.3-8. Cabe notar que la ecualizacin funciona de manera muy similar para imgenes iguales
pero con histogramas diferentes. Esto se realiz con las imgenes modificadas anteriormente.

multi.py
Este programa realiza las operaciones bsicas entre imgenes despus de cargar dos imgenes de
tamaos iguales. La operacin del recproco slo se realiza sobre la primera imagen (y tambin se
puede guardar para usarse posteriormente. Las operaciones mostradas son suma, resta (de la
primera menos la segunda), multiplicacin (normalizada) y el recproco de la primera imagen.

boole.py
Esta aplicacin realiza las operaciones booleanas AND y OR con una mscara dada sobre una
imagen. Primero se muestra la operacin AND y luego OR.

binario.py
Este programa muestra diferentes capas binarias y tambin grafica la imagen con las capas
superiores hasta la que se desee (este programa cubre dos programas). Cabe mencionar que en este
programa se tuvo que trabajar con imgenes en escala 0 255 para binarizar la informacin y
extraer las capas y mostrar las capas principales.

fftfilt.py
Este programa muestra algo similar a lo indicado en clases. Realiza una transformada de Fourier a
la imagen y le aplica un pasaaltos o un pasabajos y requiere que el usuario diga cunto porcentaje
quiere eliminar del nuevo espectro.

convgen.py
Este programa recibe un filtro 5x5 (o 3x3 si el usuario llena de ceros las entradas necesarias) por
parte del usuario y la aplica a la imagen deseada. La convolucin fue desarrollada.

convfil.py
Este programa aplica los filtros solicitados de laplaciano, gradiente (horizontal y vertical) y
mediana. La convolucin se realiz en base al programa anterior.

Esto concluye la descripcin breve de los programas. Los detalles de estos se encuentran en el
cdigo y su funcionamiento se explicar en la defensa personal.

Potrebbero piacerti anche