s2Eva_IT2014_T2y3 Color RGB a gris

Propuesta de solución en Python:

# 2da Evaluación I Término 2014
# Tema 2 y 3. 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)

# Tema 3. funcion y matriz
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]])