示例#1
0
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'"
示例#2
0
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'"
示例#3
0
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'"
示例#5
0
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'"
示例#6
0
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'"
示例#7
0
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'"
示例#8
0
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'"
示例#9
0
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'"
示例#10
0
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'"
示例#11
0
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'"
示例#12
0
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)
示例#13
0
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)
示例#14
0
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)
示例#15
0
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)
示例#16
0
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'"
示例#17
0
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'"
示例#18
0
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'"
示例#19
0
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)
示例#20
0
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)
示例#21
0
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'"