UTNianos

Versión completa: Lista de Lista de Tuplas
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola!
Necesito crear una función que al comparar dos frames, se puede obtener un FrameComprimido. Este frame se representa como una lista de valores que contiene solo las posiciones de los pixels que cambiaron significativamente, junto con el valor del cambio. Se pide programar la funcion
pixelsDiferentesEnFrame :: Frame -> Frame -> Float -> FrameComprimido que
devuelve el frame comprimido que resulta de hallar los pixels diferentes entre los dos
frames (de igual tamaño) recibidos como parametro. Dos pixels se consideran diferentes
si la norma 2 de la diferencia entre los mismos es mayor a cierto umbral u ∈ R (indicado
en el tercer parametro). Aclaracion: Los ındices de fila y columna en el resultado
deberan comenzar desde 0. Por ejemplo, el valor (1, 2, (-2, 0, 1)) en el resultado representa
que en la segunda fila, tercer columna, la diferencia entre el valor de los pixeles
del primer y segundo frame es (-2, 0, 1).
Pensando a la Lista de Lista de Tuplas como una "matriz de Tuplas"

Siendo:

type Pixel = (Integer, Integer, Integer)
type PixelDelta = (Integer, Integer, Integer)
type Frame = [[Pixel]]

type FrameComprimido = [(Integer, Integer, PixelDelta)]

norma2 :: (Integer,Integer,Integer) -> Float
norma2 (n1,n2,n3) = sqrt(fromInteger (n1^2) + fromInteger (n2^2) + fromInteger (n3^2))
URLs de referencia