Ejercicio: 2Eva_IT2014_T3 Imagen RGB a gris
continuación del tema 2, solución propuesta en Python:
# ICM00794-Fundamentos de Computación - FCNM-ESPOL # 2Eva_IT2014_T2 Función color RGB a gris # propuesta: edelros@espol.edu.ec import numpy as np def convertirgris(RGB): rojo = RGB[0] verde = RGB[1] azul = RGB[2] # Mezcla colores gris = 0.2989*rojo + 0.5870*verde + 0.1140*azul gris = int(gris) if (rojo>255 or verde>255 or azul>255): gris = -1 # Tarea: verificar para colores <0 return(gris) # 2Eva_IT2014_T3 Imagen RGB a gris def fotoagris(imagen): color,n,m = np.shape(imagen) blanconegro = np.zeros(shape=(n,m),dtype=int) # por cada pixel fila = 0 while not(fila>=n): columna = 0 while not(columna>=m): rojo = imagen[0,fila,columna] verde = imagen[1,fila,columna] azul = imagen[2,fila,columna] # para convertir RGB = [rojo,verde,azul] gris = convertirgris(RGB) # poner el punto en gris blanconegro[fila,columna] = gris columna = columna + 1 fila = fila + 1 return(blanconegro)
Ejemplo de ejecución. Se proporciona la imagen como aun arreglo[color,fila,columna]
Puede copiar los valores de imagen y pegarlo en la linea de instruccion>>>
Luego invocar a la funcion fotoagris(imagen)
>>>imagen=np.array([[[12, 27, 42, 46, 74], [ 3, 21, 33, 48, 67], [ 5, 18, 0, 57, 73], [ 6, 25, 31, 52, 69], [13, 24, 40, 54, 64]], [[13, 26, 40, 46, 66], [15, 23, 45, 55, 62], [ 3, 22, 0, 48, 70], [ 6, 24, 39, 58, 68], [ 8, 29, 35, 56, 72]], [[ 5, 28, 37, 58, 64], [ 7, 24, 34, 48, 75], [ 9, 17, 0, 50, 62], [12, 30, 43, 56, 68], [ 4, 26, 45, 49, 74]]]) >>> fotoagris(imagen) array([[11, 26, 40, 47, 68], [10, 22, 40, 52, 64], [ 4, 20, 0, 50, 69], [ 6, 24, 37, 55, 68], [ 9, 27, 37, 54, 69]])