Feature suggestion - curve sliding


(Andrew) #1

This relates to custom curves, mainly Lab L curves and Tone Curve 1 and 2, but could apply to any curve.

I adjust some points, partly using the histogram and what I want to happen, and partly by trial and error, moving the points this way and that to see what looks best. I end up with something I’m fairly happy with. Presumably lots of us do the same? Eg -
CurveA
Now I wonder if I’ve got the steep part in the optimal place, for example. I’d like to move all the points around together, as a group, except for the leftmost and rightmost. The movement might be up and down, or left and right. I just want to tweak it and see if it makes the image any better. E.g. new points like this -
CurveB
(RT would draw the actual curve of course, like it does now)
This saves me moving the points one by one, and I can easily get back to where I started from.
I don’t know whether each point would ideally move an absolute distance, or a proportionate amount.

Do you think this could be useful?!


(Glenn Butcher) #2

Pondering your proposal; it’s interesting.

Question: Do you really want the leftmost and rightmost points to stay in the same place? If so, the slope between them and their adjacent points will change, as well as the slopes past that to a point, so to speak. How far that goes depends on the spline algorithm in use, and maybe some of its settings. The effect to the image is that the tone changes at the bottom and top will not only reflect the shift, but will also have a different spread.

Also, if the left and right points reflect the adjustment of the black and white points in the image data, adjusting them with the others will change that black-white point adjustment. After pulling the curve around, you’ll probably have to scooch them back to a place that puts black and white at the top and bottom of the data range. Well, and now you’ve just done the thing I described in the previous paragraph… :slight_smile:

With respect to utility, I can see it, but I haven’t experienced a curve ‘build’ where I couldn’t reliably return to a previous sequence after trying something. Now, I’m probably less persnickety about the specific coordinates; I’m more of a TLAR (That Looks About Right) photographer.

I may try this in rawproc after I post 0.6.2; I envision something like holding Shift while rotating the mousewheel for vertical shift, Ctrl-mousewheel for horizontal shift. Might be a while, I have to rake some leaves and do some other winter prep around the house first…


(Glenn Butcher) #3

One more thought: Doing this implies that all the points are related, but in the example the lower manipulations have a specific goal for the lower tones, and the upper manipulations have a different goal for the higher tones. Shifting all of them seems to me to be suboptimal, you get a desired effect in one part of the range, while the others arbitrarily have to follow suit.


#4

Maybe the feature is being able to select a group of points and move them together such that they could be shifted however the user sees fit. In @RawConvert’s example, he wants to move 5 of 7.


(Gord) #5

I frequently find that getting back to a previous curve is not easy, unless playing with the curve is the most recent thing done. It would be cool if there was an ability to undo/redo each change made to a curve. In a way, there is with snapshots, but using snapshots requires the realization that a given step in the photo processing is a good one to hang onto. There’s another cheesy way: after a curve manipulation, move a slider and then move it back to where it was (for example move contrast 20->30->20) before doing another curve manipulation. That results in separate history steps for the two curve manipulations.

As far as trying to keep the movement of one point from screwing up other parts of the curve, I find that adding additional control points on the other side of the adjacent control points keeps those effects from being major.


(Andrew) #6

I think so, important to keep the black and white points you’ve chosen I feel. I agree the slope at the edges will change, but as you mention, you can also adjust individual points at any time. This might be where a proportionate move works better? One day perhaps I’ll try your Rawproc, there’s so much s/ware but not so much spare time!

I agree with @afre about selecting a group, this might be the ideal solution, though perhaps harder to implement.

@elGordo, I do the double point trick too, I think @patdavid mentioned it a good while back. FURTHER SUGGESTION then : how about the curve/spline algorithm is changed so that moving a point doesn’t affect the curve beyond the two adjacent points. (Why? - because if you’ve carefully fixed the tones in one part of the range, why should a change in a different part undo what you’ve just done…)


(Elle Stone) #7

That sounds useful. The way I deal with this situation is with masks and layers, so that the curve that affects eg midtones just isn’t allowed to affect a prior-adjusted tonal range such as shadow. But this is a bit of a kludge and has some limits in terms of feathering to avoid sharp transitions. So even in a “mask and layers” image editor, the option to for example move a point in the midtones without affecting the curve produced by prior-placed points in the shadows would be a very nice thing to have.


(Glenn Butcher) #8

I’m starting to visualize a concept; I already could use it for so-called ‘linear curves’ where I’m sliding the black or white point up/down or left/right along the 0/255 limit axes.

So, for the selected point, Shift-mouswheel would translate it horizontally, Ctrl-mousewheel would translate it vertically.

leftclick already selects a point for movement; Shift-leftclick would allow selection of a second and subsequent points, and the mousewheel would act on all accordingly.

I’ll have to play with it to see how the limit points respond to being translated off the grid, or probably just fix their x/y to the last in-bound point.

Interesting idea, @RawConvert


(Glenn Butcher) #9

I’m probably not going to take that one on, because I don’t understand the spline algorithm I use… :smile:

If I did that much curve manipulation, I think I’d just add multiple curve tools, one for each objective. This would be the same thing as per-layer curves in GIMP, I believe.


(Jean-Christophe) #10

“Control cage” curves are useful to modify the curve locally. You can define a default curve with 10 point along the diagonal axis, then move one without changing the others. Of course, the control points are not placed on the curve itself, however you only need to move the point further to have the desired effect. Keep also in mind that the curve is touching the “cage” line in the middle of each segment. You can also ensure that you have linear sections even in the middle of the curve by using the Shift key while moving the control points : that will snap to the point to the previous point, next point, diagonal or the line formed by the 2 adjacent points.

About moving the whole points except the first and last one, I didn’t even though about doing this, I’m using the Exposure slider for that. That would be lots of coding effort for very rare case IMHO.

About going back in curve adjustment, that would be nice sometimes, but there’s the trick you already mentioned, and you have the copy/paste buttons for the curve (common to a curve type). So before doing something you’re not sure about, you can click on “copy” first.


(Glenn Butcher) #11

Thinking about that while raking leaves, I believe there are two cases: 1) they stay put, and 2) they move to a point on the axis that preserves the slope. First one is easy, just don’t permit points less than 0, greater than 255 (assuming 0-255 range). Second one might be, shift all the points, then do a spline lookup for where the line crosses the limit and move the limit control points to those points on the translated spline.

Any translation of the entire spline is going to put one of the limit points out of the box somewhere, so I don’t think the case is rare.


(Andrew) #12

Thanks, yes, I’ve hardly used these before but I see they work well. The adjacent segments are affected a little when you move a point, but it’s a lot less than with custom points. I’ll start using control cage.


(Andrew) #13

I accept of course only some things will get built and implemented.
Re. “very rare” though, I personally would use this feature every time I used a tone curve, to see if it improved the image, and I use a tone curve for the vast majority of my pictures.