Drop hier links of afbeeldingen om ze aan de editor toe te voegen.

Mensen met kleurenblindheid zien de wereld op een andere manier dan wij. We kunnen ook berekenen welk kleur zij precies zien, zolang we weten welke soort kleurenblindheid zij hebben. We onderzoeken hier Deuteranopie of Rood-groen-kleurenblindheid.

Rood-groene appels in een zak.

Om te kunnen een RGB-kleur omvormen naar wat iemand met Deuteranopie zou zien, moet dit kleur eerst omgevormd worden naar een lineair kleur. De functies om deze bewerking (en de omgekeerde) uit te voeren werden al gegeven.

Daarna voeren we volgende formules uit (volgens het model van ViƩnot (1999)):

\[nieuwR = 0.29031 * linR + 0.70969 * linG \\ nieuwG = 0.29031 * linR + 0.70969 * linG \\ nieuwB = -0.01351 * linR + 0.01351 * linG + linB\]

Merk op dat Rood en Groen hier dezelfde berekening hebben! Dit maakt het uiteraard moeilijker voor mensen met deuteranopie om ze te onderscheiden. Daarnaast is dit model wel verouderd en geeft dit dus geen 100% accurate simulatie. De meeste mensen met rood-groen-kleurenblindheid kunnen nog wel lichte verschillen onderscheiden.

Vergeet niet om achteraf dit kleur terug om te zetten naar RGB ipv lineair!

Opgave

Schrijf een functie deuteranopie(kleur) die gegeven een kleur met r, g en b component berekent hoe dit kleur eruit zou zien voor iemand met deuteranopie. De lineairToRgb-functie rondt vanzelf af en aangezien dit normaalgezien jouw laatste stap is hoef je zelf niet meer af te ronden.

Voorbeelden

>>> deuteranopie((255, 0, 0))
(147, 147, 0)
>>> deuteranopie((0, 255, 0))
(219, 219, 31)
>>> deuteranopie((0, 0, 255))
(0, 0, 255)