This began as a simple question but got confusing the more I thought about it. I hope somebody here can help me get it sorted.
I was preparing an image texture that was to serve a purpose similar to an albedo map, in that I wanted to preserve the hue but not the luminosity values. Each of the RGB channels was to be represented with their full range of hue data.
I will use this image of two lorikeets as an example. (Credit)
I thought it would be a simple matter of creating a fill layer of some bright color, placing it below my main image layer, and setting the main layer's blend mode to "Hue".
Knowing that green has the highest luminance (Red:21% Green:72% Blue:7% according to common approximation) ...I started with green, my logic being that it should capture the full range.
Using pure green (#00ff00) for the fill layer, the hues of the image were all mapped to the luminosity of pure green. But I noticed my reds and blues looked too bright and washed out. Data was certainly being lost for those colors.
The luminosity of pure magenta (#ff00ff) was an improvement. The reds really popped now, but were so "hot" they were getting clipped out of their dynamic range.
The luminosity of pure blue (#0000ff) was of course the darkest, and not useful. But I'll include it for reference, since it gives a sense of scope to see how vast the difference is.
The green channel having the most potential for luminance, I revisited using green as the basis, but reduced the brightness value (going by the HSB model) to 80% (Hex: #00cc00). This looked a lot better. But I was still bothered that my choice was an arbitrary brightness value.
I thought about how in Photoshop we can see in the Channels tab, unmistakably, how much each of the RGB channels is contributing to the color of an image. And images typically contain shadows or contrasting variation in luminance. There are ways we can raise the "floor" on all three channels so that no black or dark areas remain, but then we are truncating the lower part of the dynamic range that represent the colors too, aren't we?
Thinking of a "color wheel" model color picker, the hues blend from one to the next and on the outermost part of the wheel are all as saturated as they can be, yet they still blend from one to the next in smoothly transitioning gradients. While blue is still the hue with lowest luminance, every hue is at its maximum potential luminance at the circle's edge.
Above: Example of a circular color selector
But considering the range of valid values for a channel, the Red Green and Blue channels each have the same range: between 0 and 255. Can it really be so difficult to preserve the integrity of all three channels?
I got curious as to whether this might be a color space or color mode issue, so I tried switching to LAB Color. In LAB, Magenta's luminosity at a brightness around 75% looked good. ↓
Next, 32-bit color mode. Surprisingly, pure blue (despite producing an unusable dark result in 8-bit RGB) produced arguably the best result in 32-bit! ↓
Note: The conclusion of "best result" (in addition to being merely an opinion) is based on a small sample set from my limited experience testing these combinations.
Note: Bear in mind all screenshots here ultimately have been exported as 8-bit RGB for in-browser display. Although the benefits of being processed while in 32-bit should be evident. The HDR Toning method used when exporting back to 8-bit was "Exposure and Gamma" at default values, so as not to alter the appearance.
In all of the results I shared above, yellow was notably absent - which is strange considering the original photo has yellow parts. Using yellow's luminance instead of blue's allowed the yellows to be preserved... but then other colors suffered. Not exactly a solution.
The more I contemplated it, the more I got to thinking that some color-science based "correct" method probably exists for isolating just the hue of an image. What is that method?
(Thanks for reading to the end of this color nerd-fest.)