Sunteți pe pagina 1din 8

UNIVERSIDAD DE SANTIAGO DE

CHILE
FACULTAD DE INGENIERA
Fundamentos de Computacin y Programacin

INFORME N1
Contando Figuras
Grupo N4

Seccin
Profesor de
Laboratorio
Profesor de
Teora
Integrantes

Santiago
Octubre 2016

: 0-C-2
: Irene Zuccar P.
: Juan Padilla
:

Larrucea H. Daniel
Margozzini P. Javier
Maripil C. Deyanira
Snchez H. Esteban
Ureta A. Carlos

CONTENIDO
INTRODUCCIN ............................................................................................................... 1
PLANTEAMIENTO DEL PROBLEMA ................................................................................ 2
FUNCIONALIDADES ......................................................................................................... 2
ABSTRACCIN DE PROCESOS ...................................................................................... 3
ESTRUCTURA DE PROGRAMA ....................................................................................... 4
ESTRUCTURA DE PROGRAMA5
CONCLUSIONES .............................................................................................................. 6
REFERENCIAS ................................................................................................................. 6

INTRODUCCIN

Los objetivos de este informe son dar a conocer los avances del programa, entregar el
diagrama de abstraccin del proceso, adems de mostrar la primera versin de nuestro
esqueleto de estructura del programa que nos ayudar a ejecutar el programa en Python.
Empezaremos primero por nuestro motivo, el cual fue el desafo de implementar un
programa creado por nosotros que nos permita contar figuras. Que nos har desglosar
minuciosamente un archivo, analizarlo, para as obtener la informacin necesaria para
ejecutar de manera eficiente el proyecto, que en este caso trata de contar figuras planas
(cuadradas y rectngulos). El informe entregar al lector el planteamiento del problema,
funcionalidades comprometidas, abstraccin de procesos y estructuras del programa.

PLANTEAMIENTO DEL PROBLEMA


El problema elegido consiste en un contador de cuadrados y rectngulos de color negro
dibujados sobre un fondo blanco, que es entregado en un formato de imagen BMP.
Como entradas del programa tenemos imgenes BMP, el procesamiento ser una
variedad de funciones que nos permitir obtener como salida el nmero de cuadrados y
rectngulos.

FUNCIONALIDADES
Las funcionalidades del programa son:
-

Abrir Python.
Pedir archivo de entrada.
Mediante la biblioteca PIL utilizar comando (llamar archivo).
Identificar archivo #si es BMP # si no es BMP enviar error.
Contar pixeles (dimensiones).
Transformar a matriz mediante Numpy (por colores).
Reconocer que la matriz se conforme solo de blanco y negro (0 y 255).
Crear contadores para cada color desde cero.
Analizar funcin desde posicin (0,0) buscando (x,y)==0.
Recibir coordenadas (x,y)=0.
Analizar figura negra.
Guardar dimensiones de la figura.
Comparar las dimensiones.
Actualizar los contadores.
Borrar la figura ya analizada.
Repetir esta cadena hasta llegar al termino final de la dimensin de la matriz.
Mostrar contador actualizado al usuario.

ABSTRACCIN DE PROCESOS

En primer lugar, como se aprecia en la figura 3.1, el usuario proporcionar el archivo con
su nombre el cual ser ejecutado (abrir el archivo). En el caso de que el usuario no
ingrese un archivo BMP el programa arrojar un error ya que el formato no es correcto.
Luego obtendremos las dimensiones del archivo las cuales se transformarn en matrices,
y as obtendremos mucha ms informacin de la imagen; como la dimensin de la matriz.
Posterior a esto pasar por el proceso de validacin donde se verifica que la matriz consta
solos de blancos y negros, si la matriz contiene otros colores que no sean los ya
mencionados no ser vlida y el programa arrojar un error. Una vez que la matriz fue
validada, ingresar a un ciclo que la analizar por distintas funciones como indica en la
figura 3.1, estas funciones son buscar por negro la cual buscar el pixel negro que una
vez encontrado ser enviado como entrada (su posicin) a la siguiente funcin; analizar
la figura negra. Esta determinar cuantas filas y columnas estn unidas por los pixeles
negros, entregando si es un cuadrado o un rectngulo. Luego mandar como entrada a la
siguiente funcin borrar la figura, para eliminarla y no volver a contarla. una vez ya
analizada toda la matriz se entregar como salida el contador.

Figura 3.1: Diagrama de abstraccin del proyecto

ESTRUCTURA DE PROGRAMA
# -*- coding: cp1252 -*# Este proyecto consta de que el programa logre detectar figuras
#geomtricas planas, en este caso cuadrados y rectngulos de color negro,
que se encuentran en un archivo BMP, con fondo blanco.
# Identificacin (Daniel Larrucea-Deyanira Maripil- Javier MargozziniEsteban Snchez- Carlos Ureta, 1.0, 23-10-2016)
# BLOQUE DE DEFINICIN
# DEFINICIN DE CONSTANTES
# DEFINICION DE VARIABLES
Cuadrados= []
Rectangulos = []
Otros= []
# IMPORTACIN DE FUNCIONES
#Importacion de las libreras PIL y Numpy
from PIL import Image
import numpy as np
# DEFINICIN DE FUNCIONES
def Validacion (dimensin, color negro, color blanco):
def Buscar_por_negro (matriz validada):
def Analizar_figura (matr-z pos x, matriz pos y):
def borrar_figura (figura pos x, pos y):

# BLOQUE PRINCIPAL
# ENTRADA
# Solicitar archivo BMP
# PROCESO

#Con esta parte abriremos el archivo


imagen = Image.open("entrada.BMP")
#Luego abierta la imagen, con sus dimensiones (con .size) podemos saber
#la dimensin de ella, las ocuparemos como
#entrada para poder transformar la informacin a matriz
#Lo ms probable que lo haremos con una funcin de numpy
# np.asarray, todava no es integrada al cdigo por posible
# averiguacin de otras
#Despus la matriz ser a enviada Validacin
Validacion (Matriz, colore negro, color blanco)
Buscar_por_negro (Matriz)
#La funcin buscar_por_negro se encargar de buscar por toda la matriz
#del archivo, puntos negros, encontrando alguno mandara las posiciones
#como entrada a la funcin analizar_la_figura, analizara sus filas y
#columnas, para definir si es cuadrado o rectngulo, datos que guardara
#en una lista ya definida
Analizar_la_figura (x,y)

#luego de esto mandara las posiciones de la figura para as borrarla,


#para no volver a contarla
#Estas tres Funciones sern cclicas hasta que se recorra todo el
#archivo en busca de las figuras
#Ya finalizado el proceso de revisar el archivo, se dar pie a la salida
# SALIDA
# se imprimir las listas de tal manera que
Print Contador de Cuadrados:, Cuadrados
Print Contador de Rectngulos:, Rectngulos
Print Contador de Otros: Otros
5

CONCLUSIONES
Como se ha sealado durante este informe contamos con las herramientas necesarias
para proseguir con la confeccin de nuestro proyecto; teniendo como base del programa,
el diagrama de abstraccin y esqueleto que es una idea abstracta del cdigo, realizado
gracias a los conocimientos obtenidos, el cual conlleva a la creacin de funciones, que
nos ayudar ejecutar el programa correctamente. Cabe destacar que ya contamos con
una idea no estamos a la deriva en la implementacin del programa, adems existe la
posibilidad de que surjan cambios debido a la optimizacin del programa.
En prximas labores se es necesario transformar este modelo de programa al programa
ejecutable el cual podr ser usado por el usuario. En palabras ms especfica
es
necesario finiquitar las funciones que se usarn y crear el cdigo ejecutable propiamente
tal.

REFERENCIAS
http://www.unioviedo.es/galiano/master/lab01_introduccion_imagen_py.html

S-ar putea să vă placă și