Advertisement
Sax

Filtro.py

Sax
Aug 16th, 2013
370
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.56 KB | None | 0 0
  1. import Image
  2. from sys import argv
  3. import numpy
  4. import time
  5.  
  6. def main():
  7.     ima,ancho,alto,vecino_n= pixel(argv[1])
  8.     i_filtro = filtros(ima,ancho,alto,vecino_n)
  9.    
  10.  
  11. def filtros(ima,ancho,alto,vecino_n):
  12.     tiempo1 = time.time()
  13.     imagen = ima.load()
  14.     val_1 = [-1,0,1]
  15.     for i in range(ancho):
  16.         for j in range(alto):
  17.             pm = vecinos(i,j,val_1,vecino_n)
  18.             imagen[i,j] = (pm,pm,pm)
  19.     nueva = 'filtro.png'
  20.     i_filtro = ima.save(nueva)
  21.     tiempo2 = time.time()
  22.     print "Tiempo de procesamiento filtro"
  23.     return nueva
  24.  
  25. def vecinos(i,j,vec_1,vecino_n):
  26.     pm = 0
  27.     indice = 0
  28.     for x in vec_1:
  29.         for y in vec_1:
  30.             sumav_1 = i+x # sumamos los vecinos
  31.             sumav_2 = j+y # sumamos los vecinos
  32.             try:
  33.                 if vecino_n[sumav_1,sumav_2]: #ciclo
  34.                     pm += vecino_n[sumav_1,sumav_2]
  35.                     indice+=1
  36.             except IndexError:
  37.                 pass
  38.     try:
  39.         pm=int(pm/indice)
  40.         return pm
  41.     except ZeroDivisionError:
  42.         return 0
  43.  
  44. #Escala de grises    
  45. def pixel(ima):
  46.     ima = Image.open(ima)
  47.     nueva = 'nueva.png'
  48.     imagen = ima.load()
  49.     ancho,alto = ima.size
  50.     vecino_n = numpy.empty((ancho, alto))
  51.     for i in range(ancho):
  52.         for j in range(alto):
  53.             (r,g,b) = ima.getpixel((i,j))
  54.             pix = (r+g+b)/3
  55.             imagen[i,j] = (pix,pix,pix)
  56.             vecino_n[i,j] = int(pix)
  57.     i_filtro = ima.copy()
  58.    
  59.     imagen = ima.save(nueva)
  60.     return i_filtro,ancho,alto,vecino_n
  61.  
  62. if __name__ == "__main__":          
  63.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement