5 ms·
The lightness plots midway through Google's blog post are made with CIECAM02-UCS, which is the same color space Matplotlib's video talked about using. It looks
by Zarel 7y ago
The lightness plots midway through Google's blog post are made with CIECAM02-UCS, which is the same color space Matplotlib's video talked about using.
It looks like Turbo is just Jet, but plotted in CIECAM02-UCS (instead of Jet's HSV). It removes many disadvantages of Jet, while keeping Jet's advantage over Viridis/Inferno of making it easier to compare/contrast small differences.
The video and the blog post actually go over a lot of the same topics, like perceptual lightness and how Jet was found to lead to mistakes reading medical imaging.
I'm not sure what analysis you're looking for; the video's a good explanation of color theory, but its analysis of Viridis is mainly just "we plotted a line through CIECAM02-UCS color space and made it linear lightness". Turbo is the same, except the line is curvier and not linear lightness – and the blog post goes through the tradeoffs of that approach.
- jacobolus 7y ago> making it easier to compare/contrast small differences Unless they happen to be near the middle of the data range, at which point it becomes much harder to compare them. This makes an artificial (not from the data) visual artifact for the entire middle part of the data range. Also visual contrast for data at one part of the data range is no longer remotely comparable to visual contrast for other parts of the data range. Finally, amount of perceived contrast is no longer proportional to differences in the data. * * * The specific comparisons done are misleading: they picked a test image with important low-contrast detail at one end of the data range and no important low-contrast detail near the middle of the data range, because they are promoting their color map which has very dramatic lightness contrast at the ends of the data range at the expense of almost no lightness contrast near the middle of the data range. If you were expecting to be working with data like this frequently there are many other things you could do to improve contrast in the part of the data you are specifically interested in.
- Zarel 7y agoI'm not sure which test image you're talking about. This one seems to have low-contrast detail everywhere in the data range: https://1.bp.blogspot.com/-H-1I69V29VM/XVWeDrO7EPI/AAAAAAAAEdI/rc4kcJYaiNkTgazt-P1tJ7xCgeXBTuNFgCLcBGAs/s1600/image31.png https://1.bp.blogspot.com/-H-1I69V29VM/XVWeDrO7EPI/AAAAAAAAE... https://1.bp.blogspot.com/-6zVTINtwP60/XVWeKMWavuI/AAAAAAAAEdM/VYew83Y03bI37wZDCXmqYaduNbLWAbSawCLcBGAs/s1600/image22.png https://1.bp.blogspot.com/-6zVTINtwP60/XVWeKMWavuI/AAAAAAAAE... While it's true that Turbo/Jet have low lightness contrast in the middle range, it makes up for it with hue contrast. While there are of course ways to improve contrast in specific parts of a data range, I like Turbo for having high contrast in general, to make it less necessary to "zoom in" on a specific range, and also to have even higher contrast after zooming in.
- jacobolus 7y agoHue contrast is not very salient to the human visual system. But while we’re at it there’s also not very much hue contrast in the middle of this color scheme. It goes from light bluish green to light yellowish green. Yes that cherry-picked image. Their original data is some kind of (log-scaled?) distance map, where half (?) of the image is in the bottom 20% of the data range. They put a bunch of apparently important data between values of like 0.00 and 0.05, but don’t have any substantial amount of important data between 0.45 and 0.55. Their color scheme has very strong lightness contrast in the 0.0 to 0.05 range, and almost no lightness contrast in the 0.45 to 0.55 range. If they had instead put a bunch of important low-contrast detail in the mid range, it would become nearly invisible compared to the old scheme. If you really care about the data from 0.0 to 0.05, and don’t really care about the data from 0.45 to 0.55 you can apply some function (e.g. a power function, or inverse smoothstep or something) to your data beforehand.
- rocqua 7y ago> They put a bunch of apparently important data between values of like 0.00 and 0.05, but don’t have any substantial amount of important data between 0.45 and 0.55. I don't think they chose the image to best present their colormap. It seems more likely that they designed their colormap to work well for a few images, including this image. Call it a very weak form of Hanlon's Razor
- Zarel 7y agoDon't have any substantial amount of important data between 0.45 and 0.55? The biggest tree is in that range! How is that not low-contrast detail in the mid-range? https://1.bp.blogspot.com/-H-1I69V29VM/XVWeDrO7EPI/AAAAAAAAEdI/rc4kcJYaiNkTgazt-P1tJ7xCgeXBTuNFgCLcBGAs/s1600/image31.png https://1.bp.blogspot.com/-H-1I69V29VM/XVWeDrO7EPI/AAAAAAAAE... https://1.bp.blogspot.com/-6zVTINtwP60/XVWeKMWavuI/AAAAAAAAEdM/VYew83Y03bI37wZDCXmqYaduNbLWAbSawCLcBGAs/s1600/image22.png https://1.bp.blogspot.com/-6zVTINtwP60/XVWeKMWavuI/AAAAAAAAE... Look at the images again. 0.45 to 0.55 is green. Do the leaves on the front of the closest tree actually look harder to distinguish in Turbo than in Inferno? It doesn't matter which function you apply to your data beforehand, it won't change that Turbo has more distinguishable steps than Viridis/Inferno. Turbo goes red-yellow-green-blue-black, Viridis goes yellow-green-black. Of course Turbo will be able to show more contrast.