Colors RGB¶
Es disposa de tres llistes de tuples. Cada tuple està format per 3 elements: els dos primers són les coordenades d’un píxel (enters) i el tercer és el valor corresponent a la intensitat d’un color (real entre 0 i 1). Cada llista fa referència a un dels tres colors bàsics RGB (vermell, verd o blau).
Dissenyeu la funció color() que a partir de tres llistes, lR,
lG i lB del tipus descrit, obtingui i retorni un diccionari on la clau
sigui un tuple de dos elements amb les coordenades de cada píxel i el
valor sigui una llista amb els valors de les intensitats dels colors
R, G i B, en aquest ordre. Pot ser que alguns píxels no apareguin en
alguna llista. En aquest cas, s’interpreta que la intensitat
corresponent al color d’una llista, per un píxel que no hi apareix,
és 0.
Deseu la funció al fitxer colors.py. La funció ha de passar el següent doctest:
>>> lR = [(3, 5, 0.1), (5, 5, 0.3), (5, 4, 0.3), (5, 6, 0.2), (5, 7, 0.7)] >>> lG = [(3, 5, 0.2), (4, 5, 0.4), (7, 5, 0.4), (5, 6, 0.6), (5, 7, 0.6)] >>> lB = [(3, 5, 0.4), (4, 5, 0.3), (6, 5, 0.2), (5, 4, 0.9), (5, 7, 0.5)] >>> d = color(lR, lG, lB) >>> d == { (3, 5): [0.1, 0.2, 0.4], (5, 5): [0.3, 0, 0], ... (5, 4): [0.3, 0, 0.9], (5, 6): [0.2, 0.6, 0], ... (5, 7): [0.7, 0.6, 0.5], (4, 5): [0, 0.4, 0.3], ... (7, 5): [0, 0.4, 0], (6, 5): [0, 0, 0.2] } True
En aquest exemple es pot veure que el píxel de coordenades (3, 5) apareix a totes tres llistes, el píxel (5, 5) només apareix a la llista del color vermell i el píxel (4, 5) només apareix a les llistes dels colors verd i blau.
Nota
Podeu descarregar el fitxer amb tests colors.txt.
Solució
Disposeu d’una solució al fitxer colors.py