[ Back to main ] [ Back to colors page ] Isoluminant Colors About Isoluminant colors are a set of colors with the same luminance, or same level of grayness. Here I provide full sets, palettes, and color pyramids for every gray level. Full Set I can use the color to gray conversion method to collect colors by gray level. In the RGB color space there are 256^3 = 16777216 colors and 256 levels of gray, but the distribution has a large deviation. The number of colors per gray level is in the range of 10 to 125000. You can find the full set here. Colors are sorted by RGB values. Isoluminant Color Pyramids For my color vision friendly palette project I have to deal with the space of combinations of isoluminant colors of several gray levels. Taking only two gray levels with 100k colors, the number of pairs is 100000^2, 10 billion. I will go up to 14 levels, so something must be done to make the problem space to a manageable size. Pyramids can help with these kind of problems if carefully engi- neered. I need a method that reduces the count of colors step by step so that every color in the smaller set has a determined set of connected colors in the larger set including itself. However, in the same time, the smaller set should cover and represent the original color range as good as possible. The usual quantization methods fail these criteria as they produce colors which are not in the input set and they are designed to be used common images, not on palettes. I find out that the key to that method is a way of sorting the isoluminant colors so that the chain of colors is more or less continous and the neighbouring colors are visually similar. With this special sets, luminance differences are not a problem. That reduces the sorting problem from 3 to 2 dimensions. Best candi- dates for these two dimensions are coming from the HSV/HSL color spaces, hue and saturation. After some trials, I found out that I should make even number of clusters by saturation for the first order of sorting. Second order of sorting is done by hue with alternating order direction between the clusters. The third and fourth orders of sorting are saturation and value/luminance – just to keep it deterministic. With a good cluster size which ended up being 4, this produces a nice chain of colors. I ended up with a small to large method, with a determined count of initial colors. The initial colors are picked so that they differ from each other as much as possible. CIELAB Delta-E 2000 has been used again for differentiation measurement. As a first step the two most different colors are picked from the full set. If the initial number of colors are larger than tow, subsequent colors are added one-by-one so that the appended color is being the most distinct from all of the previously included colors. At the end, the initial colors are sorted as mentioned earlier to form the first level of the pyramid. I found the initial colors a nice palette for the given luminance. Subsequent levels are done by going over all neighbouring color pairs of the smaller set, including the pair of last and first colors. For every of these pairs, take all bracketed colors from the full set, sorted, then if possible, split the range to six evenly sized parts. From part number 2, sort the colors by dE value against the first color of the pair, take the one in the middle and add to the larger set. Similarly with part number 5 and the second color of the pair. Less than 6 color brackets are handled specially: 1 and 2 sizes are added instantly, #1 and #3 are added form 3 size, while first and last two colors form the parts to measure dE value on for sizes 4 and 5 the smaller being added. Note that going from larger set to the smaller, the connection lines would end up strictly vertical without reflection to the peaks of different colors of the full set. In other words, some unique colors could be easily left out from smaller size levels, crowded out by colors which are similar to others already in the set. You can find the sets here. Filename format is hexadecimal gray level dash count of initial colors dash level. Level 1 has the initial colors, while the highest level has the full set of iso- luminant colors. Colors are sorted like mentioned above. UNFINISHED. THE PYRAMIDS ARE BEING CALCULATED... Fun Project I was curious how an image would look if all pixels are replaced by a random isoluminant color. You can find more test and demo images in the repository. You can find the GRAYSCALE and CVD palette projects on GitHub.