I have a colored image with gradients that got color-distorted. By distorted, I mean that the colors have been shifted (not in a linear way) but in a global way, not locally.
I know exactly which parts of the image should have which colors but since there are complicated gradients involved it's not so easy to just replace a color. Using adjustments layer like color balance is also not very helpful, because it's difficult to set the sliders exactly the way I want and there may be no combination at all that changes all the colors the way I want them to be.
Is there a way to tell Photoshop directly which input color should map to which output color and blend the rest accordingly? E.g. if I tell PS that red should map to yellow and orange should map to green then an orangy-red should map to a yellowish-green.
Edit (Example):
This is part of a scan that I'm working with. It's unedited apart from rotating, skewing and resizing.
There are 3 types of gradients: a simple linear gradient for the hair, a more complicated gradient for the skin (it's hard to see, it will have to be enhanced greatly) and wherever two colors meet.
First, I get rid of the noise and grain. I do this by using a smart blur filter and a great deal of manual clean up. There may be a more efficient method but that is not the main point of the question.
Next, the colors of the scan are all wrong. Since they are mostly flat colors I tried to select them with color range and fill the selections with the intended color or apply a color adjustment layer for this selection only.
However, that leaves the areas anywhere two or more colors meet and mix into each other. I don't know how to account for this and that's what I meant with complicated gradients. Making exact selections of the colored areas is really tricky and blurring it makes the image much too blurry (no surprise).