1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
|
Subject: L* channel duplicated across a* and b* for finer color control, &c.
Date: 9/2/08 2:32 AM
From: Jacob Rus
To: "Applied Color Theory" <colortheory@yahoogroups.com>
Hi List,
This has possibly been discussed before (I haven't run any
exhaustive searches of the list archives, and haven't more than
skimmed Dan's book in the bookstore, so let me know if I'm saying
something well known) but I haven't ever seen it mentioned in
other books or in the various color-correction internet material
I've seen, so here goes.
For problematic images--i.e. those with differing color casts in
highlights, midtones, and shadows, or possibly casts appearing in
only particular hues--or for artistic effect, the blend if
sliders (or alternately various sorts of masks) are useful for
limiting the range of various curves corrections, etc. But I
have stopped going to them first for complex corrections in these
cases, in favor of the following, which is sort of my way of
hacking Photoshop into a color correction GUI I find more
intuitive than using the Curves tool "straight":
* Convert the image to CIELAB (obviously)
* Copy the L* channel (I
* Create a new layer, and paste the L* channel into all three
channels (L*, a*, and b*).
* Set the blend mode of this new layer to "Linear Light,"[†]
and bear with me here, because at this point the image will
look like a posterized splotch. I usually name this layer
something like "L*-based corrections".
* Add a new curves adjustment layer, and set it as a clipping
mask.
* Make all three curves--L*, a*, and b*--completely flat, i.e.
Input 0 -> Output 50, In 100 -> Out 50 in the L* channel,
and In -128 -> Out 0, In 127 -> Out 0 in a* and b*. At this
point you should have an image that looks exactly like the
original, because Linear Light blend mode makes no change to
the bottom layer where the blend layer is middle gray.
* Now here's the fun part: make some points along those curves
and slide them up and down. You can thus adjust (linearly
shift) L*, a*, and b* values for various background levels of
L*, with much finer control than using the blend if sliders,
or any other tool I know.
- Want more shadow contrast? Leave the point at i0->o0, and
add another couple at, e.g., i6->o53 and i25->o54.
- Shadows a bit too green? Make an upward bump in the left
end of the a* curve.
- Sky not blue enough? Make a downward bump in the right
end of the b* curve.
&c.
That's it. If you want to make corrections based on the a* or b*
values, instead of based on L*, the procedure is identical, except
copy the a* channel (or whatever) into each one of the new layer's
channels.
The main down-side to this approach for me is that Photoshop's
Curves controls here have a very big range, and the corrections
to be made with this tool tend to be *very* close to that center
line: I sometimes wish I could zoom the curve's vertical axis to
only show its middle third (or in the case of adjusting based on
underlying a* and b*, zoom both axis like that).
Anyway, I realize this email was a bit long, but hopefully others
find this tool as useful as I have. It becomes especially nice
after setting up an action to create these layers, but making
them manually isn't *too* arduous.
Cheers,
Jacob Rus
[†]: A few other blending modes also work, but have nearly the
same possibilities here, and linear light is easier to use
in my experience. But feel free to experiment :-)
P.S. This is my first posting to this list, so I should probably introduce myself. I'm a Harvard undergraduate government
concentrator--formerly in the math department, but I got tired
of problem sets, took a year and a half off to work on various programming stuff, and am now back for the last year.5 of school.
I have been a huge Photoshop fan for about half my life now, and
I try to get out to take pictures as often as I can with my D50
(never often enough). I continually tell myself I need to put
some up online, but I somehow manage to never get around to
registering a domain and coding up the simple site I want.
Sometime soon though, I promise!
P.P.S. Can anyone recommend the best introductory/intermediate
book about image processing? I just this week started trying
to learn how to use NumPy (array math for Python) so I can try
to build some of my own types of tools, mostly for own
edification, but also because I sometimes find Photoshop's color
correction tools limiting in ways that seem easy enough to
improve on, but I want to "put my code where my mouth is" so to
speak. :-)
* * * * *
Subject: L* channel duplicated across a* and b* for finer color control, &c.
Date: 9/2/08 4:18 AM
From: Jacob Rus
To: "Applied Color Theory" <colortheory@yahoogroups.com>
Okay, a few follow-ups (which are left here because I forgot to
mention a couple of them, a couple are more detailed than needed
for the initial message and would possibly impede comprehension,
and I just figured one out right now).
1. This approach (copying one channel into all of the channels,
setting blend mode to Linear Light, and then adjusting a
flat curve) can also be used in RGB and CMYK to good effect.
In those color modes, I basically use it as a more powerful
channel mixer + blend if combined. If you've been
unsatisfied with the power available in channel mixer, I
recommend you play with this, for example for adding back
detail to very colorful objects.
2. This is a way to mix L*/C/M/Y/K channels into RGB images,
and vice-versa. Just duplicate the image, convert to the
new space, copy the desired channel, paste it back into all
channels of a new layer set to Linear Light, add the
clipping adjustment layer, and adjust to heart's content.
3. For something even potentially cooler, try:
- Duplicate the image
- Convert the duplicate to CIELAB
- Use the Hue/Saturation tool to rotate the hue 30°[†]
- Convert the image back to RGB or CMYK
- Copy one of the resulting channels
- Go back to original image
- Paste into all three channels of a Linear Light layer
- &c.
This lets you mix channels which are half-way between RGB
and CMY (roughly: modulo the differing luminosity
contributions of different wavelengths), which means you
can alter colors along sometimes more convenient axes than
RGBCMY.
4. Various channel mixing uses of this technique can be very
effective for converting a color image to grayscale.
Indeed, the combination of this technique, the
Shadow/Highlight tool, and various sharpening/blurring
of various channels on large/small scale, is enough to
handle pretty much all my B&W conversion needs. :)
5. Once you have a B&W image, the technique can also be an
effective tool for tinting it with extreme control. Just
(in CIELAB mode) set up a layer with L* copied to all
three channels (no need to set this to Linear Light this
time), and then create a curves adjustment layer, with
the L* curve left as a normal ramp from i0->o0 to
i100->o100, and then set the initial curves of the a* and
b* channels to be flat 0 all the way across. Then move
a* and b* curves up and down to tint various L* levels
of the image different tints, without affecting the L*
component of the resulting colors.
6. I said before:
> The main down-side to this approach for me is that
> Photoshop's Curves controls here have a very big range,
> and the corrections to be made with this tool tend to
> be *very* close to that center line: I sometimes wish
> I could zoom the curve's vertical axis to only show its
> middle third (or in the case of adjusting based on
> underlying a* and b*, zoom both axis like that).
I just figured out how this can be solved. Woohoo! We can
make a Levels adjustment layer between the 3-alike-channels
layer, and the nearly-flat-curves-meat-of-the-technique
layer, and use it to "zoom" the horizontal axis, by bringing
in the input left/right sliders by the desired factor (if
we're trying to edit based on a* and b* values, they are
often very low, so we can bring compress the levels here to
1/5 or even 1/10 of their original extent. This lets us use
more of the curve in our main curves layer.
Likewise, to "zoom" on the vertical axis, we can add a Levels
adjustment layer *above* our main curves layer (note all of
these layers should be set as clipping masks), and bring its
*output* sliders (on both ends of every channel) in to 1/5 or
whatever their original extent, which will effectively dampen
whatever adjustments we make in our main curves layer, which
means we can see the adjustments we're making better, because
they won't all be so close to the axis.
I'm excited about this. It makes using this technique much
faster because less precise mousing is needed.
Okay, enough for now. I'll give others a chance to weigh in (e.g.
to tell me they think I'm completely nuts). :-)
Cheers,
Jacob Rus
[†]: You experts all probably already know this, but the
Hue/Saturation tool is *way* more useful in CIELAB mode
than in RGB mode. (It modifies the image in CIELAB LCh,
rather than the brain-dead HSL)
|