Académique Documents
Professionnel Documents
Culture Documents
En este laboratorio, se procederá a mostrar las diversas operaciones, con su respectiva aplicación y ploteo:
In [1]:
%matplotlib inline
import numpy as np
from skimage import io,data,color
import matplotlib.pyplot as plt
1.2. Se hace una llamada a la función "data" para obtener la imagen deseada:
In [2]:
img=data.camera()
In [3]:
r,c=img.shape
1.4. Se ingresa una variable para saber cuanto es el aumento o disminución de brillo deseado. Se divide
entre 1 para convertirlo a valor numérico y pueda ser operado:
In [4]:
Ingrese brillo: 40
1.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))
localhost:8888/nbconvert/html/01_Brillo.ipynb?download=false 1/2
1/5/2019 01_Brillo
1.6. Creamos el algoritmo que nos permite aumentar el brillo. Este algorimo consiste en sumar a cada valor
de la matriz de la imagen, el valor "cb" y con esto aumentar 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:
In [6]:
for i in range(r):
for j in range(c):
e=img[i,j]+cb
if e>255:
output[i,j]=255
elif e<0:
output[i,j]=0
else:
output[i,j]=img[i,j]+cb
1.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)
1.8. Como paso final, procedemos a usar subplot para poder plotear tanto la imagen original, como la
imagen con el brillo 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/01_Brillo.ipynb?download=false 2/2