Until now I've managed to be totally ignorant about the display device, but at this point I do need to know one thing: the gamma. Once we know the gamma, we can do linear interpolation between the colors in what is basically gamma-corrected color space, so that luminance varies linearly between the two points; details are in the paper. So how do you measure gamma?
(Running demo)So that's basically the method presented in our paper, and the two interesting stages in it. What remains to be discussed are some conceptual details, and the user study we conducted.Well actually, the face-based matching works for that as well. Here's the standard alternating line trick for measuring gamma, where you have to make the square match the background. But, I think this is easier. When the faces balance, you've measured gamma.
Knowing gamma, you can use the formula I showed you, from the paper, to interpolate between control points, to make a new perceptual colormap.
(Running second script to process output of demo)
Here's the rainbow colormap before, and here's the new isoluminant version I just created. As you can see, in order to make the colors have the right luminance, I had to make yellow dimmer, and blue much less saturated.