Está en la página 1de 2

1/5/2019 02_Contraste

1. AUMENTO Y DISMINUCIÓN DE CONTRASTE

2.1. Primero, se procede a llamar a las librerías necesarias para la operación:

In [1]:

%matplotlib inline
import numpy as np
from skimage import io,data,color
import matplotlib.pyplot as plt

2.2. Se hace una llamada a la función "data" para obtener la imagen deseada:

In [2]:

img=data.camera()

2.3. Tomamos el rango de la imagen tanto en el eje X como en el eje Y:

In [3]:

r,c=img.shape

2.4. Se ingresa una variable para saber cuanto es el aumento o disminución de contraste deseado. Se divide
entre 1 para convertirlo a valor numérico y pueda ser operado:

In [4]:

co=int(input("Ingrese contraste: "))/1

Ingrese contraste: 3

2.5. Para hacer una comparación entre la imagen inicial y la imagen deseada, creamos una matriz del
mismo tamaño, pero que tendrá solo valores cero. Esto es con el fin de poder ingresar los valores que
vayamos modificando en el camino:

In [5]:

output=np.zeros((r,c))

2.6. Creamos el algoritmo que nos permite aumentar el contraste. Este algorimo consiste en multiplicar a
cada valor de la matriz de la imagen, el valor "co" y con esto multiplicar su valor. Se considera las
restricciones tanto en los valores 0 como en 255 ya que, al ser los valores límites, no deben exceder ese
valor porque volverían al valor siguiente en el rango de 8 bits (De 0 pasaría a 255 si no se puede restar más,
y de 255 pasaría a 0 si no se puede sumar más). Estos valores serán asignados a la matriz output, que
actualmente solo tenía valores 0:

localhost:8888/nbconvert/html/02_Contraste.ipynb?download=false 1/2
1/5/2019 02_Contraste

In [6]:

for i in range(r):
for j in range(c):
e=img[i,j]*co
if e>255:
output[i,j]=255
elif e<0:
output[i,j]=0
else:
output[i,j]=img[i,j]*co

2.7. La matriz output actualmente consta de valores numéricos, los cuales no pueden ser ploteados como
imagen. Se debe devolver al formato imagen para poder visualizarlo y plotearlo:

In [7]:

output=np.uint8(output)

2.8. Como paso final, procedemos a usar subplot para poder plotear tanto la imagen original, como la
imagen con el contraste modificado:

In [8]:

plt.subplot(1,2,1)
io.imshow(img,cmap='gray')
plt.subplot(1,2,2)
io.imshow(output,cmap='gray')
io.show

Out[8]:

<function skimage.io._io.show()>

localhost:8888/nbconvert/html/02_Contraste.ipynb?download=false 2/2

También podría gustarte