Electronic Imaging 2008: Color Universal Design (and a MATLAB-based simulator)

Note: Here’s another dispatches about what happened at the Electronic Imaging symposium even though I’m back from San Jose. They will continue until I run out of useful things to write or something more interesting happens in my life.

Yasuyo Ichihara of Kogakuin University presented some research that she and her colleagues performed on what many of us call “color blindness” or “color deficiency.” She would prefer that we say these differently sighted folks have “color confusion,” which I’ll probably try since it’s slightly more evocative than “color deficiency.” And from a PC point of view, it may not be nice to stagmatize roughly 5% of the population as deficient, etc.

Anyway, they presented research of how their lab applied color universal design to remake the map and timetables of the Tokyo subway system to be friendlier for people with both protanopia and deuteranopia. It turns out that the color confusion can be quite simply modeled by placing two iso-chromaticy lines on the standard x-y chromaticity diagram. Along those lines, all colors appear to be the same hue; so it’s not too hard to pick colors that are maximally contrasting by avoiding the iso-lines. They picked four colors, which they claim are suitable for many print applications: black, orange-red, bluish-green, and a more pure blue.

Color universal design doesn’t stop at picking the right colors. Adding non-color information — such as letters, underlining, framing, or other symbols — proved to be very useful aids to comprehension, too.

All of this reminded me that awhile back I implemented a color deficiency simulator in MATLAB based on work by Hans Brettel. I’m making these functions available here in the hopes that they’re useful and that you actually use them when designing something colorful. Simply download the protanopia and deuteranopia simulator M-files and the associated data file. (You will need the Image Processing Toolbox, since these functions use rgb2ind.)

Let’s see what the peppers image I created some years ago looks like to people with color confusion:

rgb = imread('peppers.png');
figure; imshow(rgb); title('Normal color vision')
figure; imshow(deuteranopia(rgb)); title('Deuteranopia')
figure; imshow(protanopia(rgb)); title('Protanopia')

This entry was posted in Color and Vision, Computing, MATLAB. Bookmark the permalink.

4 Responses to Electronic Imaging 2008: Color Universal Design (and a MATLAB-based simulator)

  1. Pingback: Colour perception and colour blindness « V1

  2. Vijay Kumar P. S. says:

    Hello Jeff

    I”am a photographer I would like to thank you for putting across the article on the net and I curse myself why I never thought of making pic for such people all these years, I will make an effort to convert the rgb files into protanopia,deuternopia files.

    Can you help me step by step how to do the conversion in photoshop.

    Thank you once again.


  3. Jeff Mather says:

    Vijay: I’m not aware of a method for swapping the color table (colormap) of an image in Photoshop. That’s not to say it’s impossible; I just don’t know how one would do it. If you can figure that out, then it should be very easy.

    I think it’s worth noting that the important thing is to use color universal design when it’s possible that the information in your graphic is difficult to use. Unless you’re using your photographs as part of a larger informatics project, it might not be necessary to simulate them this way at all.

  4. Aremint Pi'ee says:

    Hi Jeff Mather,
    I’m a student who is doing my final year project about colour blindness. I just download you coding for protanopia and deuteranopia as my reference for my software. but may i know how you do the calculation both two blindness to get the color anomalies value? because i want to do for trinatopia type.

    Please do email me the guide. Thank You so much.


Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>