def umbralAda(): nombreImagen = argv[1] #Obtiene la imagen,el tamano, y los pixeles img = Image.open(nombreImagen) ancho,alto = img.size pixeles = img.load() #Los pixeles a color los cambia a Escala de Grises bo.toGrayScale(pixeles, ancho, alto) #Histograma y el numero total de pixeles total = ancho * alto hist = img.histogram() #Obtiene el umbral thresh = umbralAdaptativo(hist, total) #Redibuja la imagen con el umbral obtenido for i in range(ancho): for j in range(alto): pixel = pixeles[i,j] if pixel[0] > thresh: newpx = 255 else: newpx = 0 pixeles[i,j] = (newpx, newpx, newpx) new = "umbralAdaptativo.jpg" img.save(new) print "Imagen generada con exito 'umbralAdaptativo.jpg'"
def brillo(): #obtiene nombre de imagen como parametro nombreImagen = argv[1] #Selecciona el brillo a agregar brillo = 256 while brillo < -255 or brillo > 255: brillo = input("Ingresa el brillo (-255 a 255) : ") #Obtiene la imagen,el tamano, y los pixeles img = Image.open(nombreImagen) ancho, alto = img.size pixeles = img.load() #Los pixeles a color los cambia a Escala de Grises bo.toGrayScale(pixeles, ancho, alto) max = 0 #Aumenta el brillo a la imagen for i in range(ancho): for j in range(alto): pixel = pixeles[i, j] newpx = pixel[0] + brillo pixeles[i, j] = (newpx, newpx, newpx) if newpx > max: max = newpx #Normaliza la imagen para que un pixel no sobrepase los 255 #if max > 255: # bo.normalize(pixeles, max, ancho, alto) new = "brillo.jpg" img.save(new) print "Imagen generada con exito 'brillo.jpg'"
def umbMaxProb(): print "Hola" #obtiene nombre de imagen como parametro nombreImagen = argv[1] #Abre la imagen, obtiene su ancho, alto y sus pixeles img = Image.open(nombreImagen) ancho, alto = img.size pixeles = img.load() #La transforma a escala de grises bo.toGrayScale(pixeles, ancho, alto) #Obtener promedio y varianza promedio = est.averageUno(pixeles, ancho, alto) varianza = est.varianza(pixeles, ancho, alto, promedio) print promedio print varianza #Formula Umbral de Maxima Probabilidad for i in range(ancho): for j in range(alto): pixel = pixeles[i, j][0] newpx = int( (1 / ((2 * math.pi * varianza))**0.5)**(-(((promedio - pixel)**2) / (varianza * 2)))) pixeles[i, j] = (newpx, newpx, newpx) print "error" new = "UmbralMaxProbabilidad.jpg" img.save(new) print "Imagen generada con exito 'UmbralMaxProbabilidad.jpg'"
def umbMaxProb(): print "Hola" #obtiene nombre de imagen como parametro nombreImagen = argv[1] #Abre la imagen, obtiene su ancho, alto y sus pixeles img = Image.open(nombreImagen) ancho,alto = img.size pixeles = img.load() #La transforma a escala de grises bo.toGrayScale(pixeles, ancho, alto) #Obtener promedio y varianza promedio = est.averageUno(pixeles, ancho, alto) varianza = est.varianza(pixeles, ancho, alto, promedio) print promedio print varianza #Formula Umbral de Maxima Probabilidad for i in range(ancho): for j in range(alto): pixel = pixeles[i,j][0] newpx = int((1 / ((2 * math.pi * varianza))**0.5)**(-(((promedio - pixel)**2) / (varianza * 2)))) pixeles[i,j] = (newpx, newpx, newpx) print"error" new = "UmbralMaxProbabilidad.jpg" img.save(new) print "Imagen generada con exito 'UmbralMaxProbabilidad.jpg'"
def umbral(): #obtiene nombre de imagen como parametro nombreImagen = argv[1] #Selecciona el umbral thresh = 0; while thresh < 1 or thresh > 255: thresh = input("Ingresa el umbral (1-255) : ") #Obtiene la imagen,el tamano, y los pixeles img = Image.open(nombreImagen) ancho,alto = img.size pixeles = img.load() #Los pixeles a color los cambia a Escala de Grises bo.toGrayScale(pixeles, ancho, alto) #Umbral Blanco-Negro for i in range(ancho): for j in range(alto): pixel = pixeles[i,j] if pixel[0] > thresh: newpx = 255 else: newpx = 0 pixeles[i,j] = (newpx, newpx, newpx) new = "umbral.jpg" img.save(new) print "Imagen generada con exito 'umbral.jpg'"
def brillo(): #obtiene nombre de imagen como parametro nombreImagen = argv[1] #Selecciona el brillo a agregar brillo = 256; while brillo < -255 or brillo > 255: brillo = input("Ingresa el brillo (-255 a 255) : ") #Obtiene la imagen,el tamano, y los pixeles img = Image.open(nombreImagen) ancho,alto = img.size pixeles = img.load() #Los pixeles a color los cambia a Escala de Grises bo.toGrayScale(pixeles, ancho, alto) max = 0 #Aumenta el brillo a la imagen for i in range(ancho): for j in range(alto): pixel = pixeles[i,j] newpx = pixel[0] + brillo pixeles[i,j] = (newpx, newpx, newpx) if newpx > max : max = newpx #Normaliza la imagen para que un pixel no sobrepase los 255 #if max > 255: # bo.normalize(pixeles, max, ancho, alto) new = "brillo.jpg" img.save(new) print "Imagen generada con exito 'brillo.jpg'"
def umbral(): #obtiene nombre de imagen como parametro nombreImagen = argv[1] #Selecciona el umbral thresh = 0 while thresh < 1 or thresh > 255: thresh = input("Ingresa el umbral (1-255) : ") #Obtiene la imagen,el tamano, y los pixeles img = Image.open(nombreImagen) ancho, alto = img.size pixeles = img.load() #Los pixeles a color los cambia a Escala de Grises bo.toGrayScale(pixeles, ancho, alto) #Umbral Blanco-Negro for i in range(ancho): for j in range(alto): pixel = pixeles[i, j] if pixel[0] > thresh: newpx = 255 else: newpx = 0 pixeles[i, j] = (newpx, newpx, newpx) new = "umbral.jpg" img.save(new) print "Imagen generada con exito 'umbral.jpg'"
def umbralAda(): nombreImagen = argv[1] #Obtiene la imagen,el tamano, y los pixeles img = Image.open(nombreImagen) ancho, alto = img.size pixeles = img.load() #Los pixeles a color los cambia a Escala de Grises bo.toGrayScale(pixeles, ancho, alto) #Histograma y el numero total de pixeles total = ancho * alto hist = img.histogram() #Obtiene el umbral thresh = umbralAdaptativo(hist, total) #Redibuja la imagen con el umbral obtenido for i in range(ancho): for j in range(alto): pixel = pixeles[i, j] if pixel[0] > thresh: newpx = 255 else: newpx = 0 pixeles[i, j] = (newpx, newpx, newpx) new = "umbralAdaptativo.jpg" img.save(new) print "Imagen generada con exito 'umbralAdaptativo.jpg'"
def contrasteClaro(): #obtiene nombre de imagen como parametro nombreImagen = argv[1] #Pide la gamma y beta que se usara gamma = input("Gamma: ") beta = input("Beta: ") #Abre la imagen, obtiene su ancho, alto y sus pixeles img = Image.open(nombreImagen) ancho, alto = img.size pixeles = img.load() #La transforma a escala de grises bo.toGrayScale(pixeles, ancho, alto) #Anade contraste a la imagen for i in range(ancho): for j in range(alto): pixel = pixeles[i, j] newpx = pixel[0] * gamma + beta #Valida los valores if newpx < 0: newpx = 0 elif newpx > 255: newpx = 255 else: newpx = pixel[0] #Coloca el nuevo valor pixeles[i, j] = (newpx, newpx, newpx) new = "contrasteClaro.jpg" img.save(new) print "Imagen generada con exito 'contrasteClaro.jpg'"
def aclararImagen(): #obtiene nombre de imagen como parametro nombreImagen = argv[1] #Selecciona el brillo a agregar x = -1 while x < 0: x = input("Ingresa la cantidad a aclarar (mayor a 0.0) : ") #Obtiene la imagen,el tamano, y los pixeles img = Image.open(nombreImagen) ancho, alto = img.size pixeles = img.load() #Los pixeles a color los cambia a Escala de Grises bo.toGrayScale(pixeles, ancho, alto) max = 0 #Aumenta el brillo a la imagen for i in range(ancho): for j in range(alto): pixel = pixeles[i, j] newpx = int(pixel[0] * x) pixeles[i, j] = (newpx, newpx, newpx) if newpx > max: max = newpx new = "aclaradoDeImagen.jpg" img.save(new) print "Imagen generada con exito 'aclaradoDeImagen.jpg'"
def aclararImagen(): #obtiene nombre de imagen como parametro nombreImagen = argv[1] #Selecciona el brillo a agregar x = -1; while x < 0: x = input("Ingresa la cantidad a aclarar (mayor a 0.0) : ") #Obtiene la imagen,el tamano, y los pixeles img = Image.open(nombreImagen) ancho,alto = img.size pixeles = img.load() #Los pixeles a color los cambia a Escala de Grises bo.toGrayScale(pixeles, ancho, alto) max = 0 #Aumenta el brillo a la imagen for i in range(ancho): for j in range(alto): pixel = pixeles[i,j] newpx = int(pixel[0] * x) pixeles[i,j] = (newpx, newpx, newpx) if newpx > max : max = newpx new = "aclaradoDeImagen.jpg" img.save(new) print "Imagen generada con exito 'aclaradoDeImagen.jpg'"
def escalaGrisesRuido(nombreImagen=argv[1]): img = Image.open(nombreImagen) ancho, alto = img.size pixeles = img.load() bo.toGrayScale(pixeles, ancho, alto) SalYpimienta(img, ancho, alto, pixeles)
def escalaGrisesRuido(nombreImagen=argv[1]): img = Image.open(nombreImagen) ancho,alto =img.size pixeles = img.load() bo.toGrayScale(pixeles,ancho,alto) SalYpimienta(img,ancho,alto,pixeles)
def escalaGrises(nombreImagen=argv[1]): img = Image.open(nombreImagen) ancho,alto = img.size pixeles= img.load() bo.toGrayScale(pixeles,ancho,alto) ValleGlobal(ancho,alto,pixeles)
def filtroMediana(nombreImagen = argv[1]): #obtiene nombre de imagen como parametro #Abre la imagen, obtiene su ancho, alto y sus pixeles img = Image.open(nombreImagen) ancho,alto = img.size pixeles = img.load() #La transforma a escala de grises bo.toGrayScale(pixeles, ancho, alto) fMediana(pixeles, ancho, alto, img)
def negativo(): #obtiene nombre de imagen como parametro nombreImagen = argv[1] #Abre la imagen, obtiene su ancho, alto y sus pixeles img = Image.open(nombreImagen) ancho, alto = img.size pixeles = img.load() #La transforma a escala de grises bo.toGrayScale(pixeles, ancho, alto) #Vuelve Negativa la imagen for i in range(ancho): for j in range(alto): pixel = pixeles[i, j] newpx = 255 - pixel[0] pixeles[i, j] = (newpx, newpx, newpx) new = "negativo.jpg" img.save(new) print "Imagen generada con exito 'negativo.jpg'"
def negativo(): #obtiene nombre de imagen como parametro nombreImagen = argv[1] #Abre la imagen, obtiene su ancho, alto y sus pixeles img = Image.open(nombreImagen) ancho,alto = img.size pixeles = img.load() #La transforma a escala de grises bo.toGrayScale(pixeles, ancho, alto) #Vuelve Negativa la imagen for i in range(ancho): for j in range(alto): pixel = pixeles[i,j] newpx = 255 - pixel[0] pixeles[i,j] = (newpx, newpx, newpx) new = "negativo.jpg" img.save(new) print "Imagen generada con exito 'negativo.jpg'"
def contrasteClaro(): #obtiene nombre de imagen como parametro nombreImagen = argv[1] #Pide la gamma y beta que se usara gamma = input("Gamma: ") beta = input("Beta: ") #Abre la imagen, obtiene su ancho, alto y sus pixeles img = Image.open(nombreImagen) ancho,alto = img.size pixeles = img.load() #La transforma a escala de grises bo.toGrayScale(pixeles, ancho, alto) #Anade contraste a la imagen for i in range(ancho): for j in range(alto): pixel = pixeles[i,j] newpx = pixel[0] * gamma + beta #Valida los valores if newpx < 0: newpx = 0 elif newpx > 255: newpx = 255 else: newpx = pixel[0] #Coloca el nuevo valor pixeles[i,j] = (newpx, newpx, newpx) new = "contrasteClaro.jpg" img.save(new) print "Imagen generada con exito 'contrasteClaro.jpg'"
def escalaGrisesModa(nombreImagen=argv[1]): imagen = Image.open(nombreImagen) ancho, alto = imagen.size pixeles = imagen.load() bo.toGrayScale(pixeles, ancho, alto) imgModa(imagen, ancho, alto, pixeles)
def escalaGrisesModa(nombreImagen= argv[1]): imagen = Image.open(nombreImagen) ancho,alto= imagen.size pixeles = imagen.load() bo.toGrayScale(pixeles,ancho,alto) imgModa(imagen, ancho, alto, pixeles)
def medianaTrunca(): #obtiene nombre de imagen como parametro nombreImagen = argv[1] #Abre la imagen, obtiene su ancho, alto y sus pixeles img = Image.open(nombreImagen) ancho,alto = img.size pixeles = img.load() #La transforma a escala de grises bo.toGrayScale(pixeles, ancho, alto) averaI = est.average(est.doList(pixeles, ancho, alto)) #### veces = int (((ancho * alto)**0.25) + 8) print "Iterara: " str(veces) " veces" z = 0 while z < veces: for i in range(ancho): for j in range(alto): p = [] avera = 10 moda = 0 contador = 0 while ((avera - moda)**2 > 24): #1 if i - 1 < 0 or j - 1 < 0: p1 = pixeles[i,j][0] else: p.append(pixeles[i-1,j-1][0]) #2 if i - 1 < 0: p2 = pixeles[i,j][0] else: p.append(pixeles[i-1,j][0]) #3 if i - 1 < 0 or j + 1 > alto - 1: p3 = pixeles[i,j][0] else: p.append(pixeles[i-1,j+1][0]) #4 if j - 1 < 0: p4 = pixeles[i,j][0] else: p.append(pixeles[i,j-1][0]) #5 if j + 1 > alto - 1: p5 = pixeles[i,j][0] else: p.append(pixeles[i,j+1][0]) #6 if i + 1 > ancho - 1 or j - 1 < 0: p6 = pixeles[i,j][0] else: p.append(pixeles[i+1,j-1][0]) #7 if i + 1 > ancho - 1: p7 = pixeles[i,j][0] else: p.append(pixeles[i+1,j][0]) #8 if i + 1 > ancho - 1 or j + 1 > alto - 1: p8 = pixeles[i,j][0] else: p.append(pixeles[i+1,j+1][0]) #Obtener mayor y menor de los pixeles cercanos minp = min(p) maxp = max(p) #Selecciona el nuevo pixel en base a los minimos y maximos cercanos pixel = pixeles[i,j][0] if pixel < minp: newpx = minp elif pixel > maxp: newpx = maxp else: newpx = pixel #Coloca el nuevo valor pixeles[i,j] = (newpx, newpx, newpx) avera = est.average(p) moda = est.moda(p) contador += 1 if contador > 1: avera = 0 moda = 0 z += 1 ### #Guarda Imagen new = "medianaTrunca.jpg" img.save(new) print "Imagen generada con exito 'medianaTrunca.jpg'"