While I was in Japan, I volunteered for the Kyoto International House, modifying some of their websites. As a noob at web site design, I consulted some blogs, one of which (Stefano's Linotype), among other things, suggested that the RGB color model was not the best one to pick fitting colors for a web page. One of the problems is that once you change one of the red, green or blue values, the hue, saturation and lightness gets changed. This is not appropriate for any practical color-picking. Instead of RGB, there are other, more appropriate color spaces (HSL/HSV being one of them), but one of the more interesting ones is the Munsell Color System. This system intrigued me, so I decided to take a look. I found two tools for actual color-picking in the Munsell color system, but both of them seemed lacking in some areas.
This one did not display the cylindricality of the color system in enough detail, and was just plain confusing, and this one had no way of indicating the Munsell value of a particular color being picked. I decided that it would be a great idea trying to make a color picker of my own.
I decided to do it in Python, using Pygame for drawing on the screen. Although I found several references to a formula for converting values from the Munsell color system to more familiar ones, I couldn't find the formula itself. The best I could find was a list of all the values of the colors in an actual Munsell Color Book from the Munsell Color Science Laboratory. This list included the xyY coordinates of each Munsell color, so I used this to convert the values to the RGB color system for displaying on my monitor.
The resulting tool has three "views", each displaying a slice of the Munsell color cylinder. These views are labeled 1, 2 and 3, 1 being a horizontal slice of the cylinder, 2 being a vertical slice through the center axis of the cylinder, and 3 being a ring shaped slice (with the radius from the central axis being constant). Moving from one view to another one is possible either by pressing 'v' or pressing '1', '2' or '3', depending on which view you want to move to, and then selecting the appropriate slice on the screen. To modify the parameters for the current view, use UP arrow and DOWN arrow. To zoom in/out, press RIGHT/LEFT arrow. To exit, press ESC.
Notice that a lot of the screen is covered by gray circles. These are the Munsell colors that cannot be displayed in the RGB color space.
View #1 from the top. The gray line indicates that you can move to a vertical intersection through this line to view #2.

View #2.

View #3.


View #2.

View #3.

Now, I realize that this tool is also very limited, and probably cannot be used for any practical color-picking, but at least it was fun to make.
Here is the exe file (sorry, Mac and Linux users), and here is the source python file, although I must say that the code is very messy.
Here is more info about the Munsell Color Space, as well as anything else you might want to know about light, colors, color perception, etc.
Update: As pointed out by rabidcow, I had left out gamma correction when converting from xyY to RGB. Both the source and exe have been updated to fix this problem.

5 comments:
I just wanted to say thanks for working on this project. As a designer and painter, I have always longed for something similar to this. I hope you might continue development of it, and I will check back to see if you do.
Thanks much again.
(For anyone looking to download from a *REASONABLE* file host, see http://www.filedropper.com/munsell11 )
Might be interesting to look into this one too:
"Riemersma, T.; "Colour metric";
A proposal for a weighted Euclidean metric to express the distance between two colours.
The article argues that the proposed metric achieves similar quality as CIE Luv, while being much simpler. "
Do you have the mathematical model of system color transformation RGB for HSV(of Mursell)?
If you have it, tell me.
Bye!
Anderson Barros
rioand@yahoo.com
phone: +55 18 88021866
Do you have the mathematical model of system color transformation RGB for HSV(of Mursell)?
If you have it, tell me.
Bye!
Anderson Barros
rioand@yahoo.com
phone: +55 18 88021866
Post a Comment