Python - ayuda por favor..!

   
Vista:

ayuda por favor..!

Publicado por christian (1 intervención) el 17/10/2010 03:05:45
hola alguien me podria ayudar a hacer este programa.
llegue hasta ahi y necesito que haga lo siguiente.
Abajo les dejo mi programa.

POR FAVOR LO NECESITO. DESDE YA GRACIAS.

Programa a Realizar

Parte Principal

Debe desarrollar un programa que cuando comience cargue la imagen de TUX y ofrezca al usuario un menú
de opciones con tres posibles filtros para aplicarle.
Los filtros siempre deberán aplicarse a la imagen original, por lo tanto, no la sobreescriba. El programa
deberá ser capaz de aplicar cualquiera de los filtros un número indefinido de veces.
El programa deberá terminar únicamente en el caso que el usuario elija la opción salir del menú,
Recuerde que el color blanco se representa con el valor 255.

Función Menú

Desarrolle una función que será la encargada de presentar en la consola de texto un menú de opciones con
los nombres de los tres filtros y una cuarta opción para salir del programa.
Esta función será la encargada de controlar si la opción ingresada por el usuario se corresponde con una
opción válida. Si la opción elegida es válida se devolverá al programa principal. En caso que la opción sea
incorrecta, se pedirá al usuario que vuelva a ingresar una opción.

Filtro Negativo
Desarrolle un filtro de negativo que sustituye el valor c de cada píxel por su opuesto (es decir, por 255 − c).

Filtro de Reflexión Horizontal
Desarrolle un filtro de reflexión horizontal que realice el intercambio de columnas para simular una reflexión
en el espejo.

Filtro Mitad de Alto
Desarrolle un filtro de mitad de alto que realice la reducción a la mitad del alto de la imagen. Esta reducción
debe producir como resultado una nueva imagen de 78×70 píxeles en la cual el dibujo quede centrado.

La reducción implica que dos píxeles adyacentes se conviertan en uno solo, por lo tanto, el pixel resultante
debe obtenerse como el promedio de ellos.
Original Reducida


def _entero2color(n):
return '#'+('%02x'%n)*3

def leerIm(nombreFichero):
#lee imagen del fichero tux.txt
f=open(nombreFichero)
im1=f.read()
f.close()
#convierte datos en matriz
lin=im1.split('\n')
mat=[]
for l in lin:
if l=='': break
mat.append(map(int,l.split()))
return mat

def dibujarIm(mat):
filas=len(mat)
columnas=len(mat[0])
l=[]
xx1,yy1,xx2,yy2=window_coordinates()

px=float(xx2-xx1)/columnas
py=float(yy2-yy1)/filas
for i in range(filas):
for j in range(columnas):
if mat[i][j]==-1:
col='#ffff00'
else:
col=_entero2color(mat[i][j])
x1=xx1+px*j
y1=yy2-py*(i+1)
x2=xx1+px*(j+1)
y2=yy2-py*i
l.append(create_filled_rectangle(x1,y1,x2,y2,col))
return l

def borrarIm(ind):
map(erase,ind)


# La función leerIm("tux78x70.txt") lee la imagen y
# devuelve una matriz:
mat = leerIm("tux78x70.txt")

# La función dibujarIm(mat) dibuja la imagen dada la
# matriz que se le pasa como parámetro:
id = dibujarIm(mat)

# Borramos la imagen después de pulsar Return:
raw_input("Pulsa Return para borrar imagen: ")
borrarIm(id)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder