For my experience, curves are the thing for working the histogram. Most simple tone manipulations can be done with curves. For instance, 2x exposure compensation can be done by simply dragging the upper control point to the middle of the grid, as the straight line of the “curve” now represents multiplying each tone by 2. White balance can be done easily with per-channel curves, again with the upper control point for each channel.
Once you know the fundamental concept of the curve and do some playing with it, you can readily look at the image and figure out the control points you need without experimentation. As a corollary to the image I posted at Flowers in the Dining (not Living) Room, here’s the processed image before the curve:
What I wanted to do was darken the background. Fortunately, the foreground flower was lighter than the background, so the curve shown here did the trick:
The two end points were left alone, the first point I added was to drag the lower part of the histogram into darkness, and the other point lifted the flower back up a little.
This example is in my hack software, but any of the software discussed here that does curves will behave similarly.
Oh, back to the histogram, note that mine here is bunched up to the left. I did that deliberately with the blackwhitepoint tool. I put the left slider well into the data, in order to crush the shadows and emphasize the lighter flower. Didn’t go to far with that, because any of the histogram to the left of that point is now lost data. This tool is really just a curve with two points, the lower-left and upper-right points, and the sliders move them in order to set the curve at the limits of the data, as seen in the histogram. Here’s the processing before the blackwhitepoint:
Notice how flat the image looks, and regard the histogram: all the data is below about 136 on the 0-255 scale. If you go back up to the first screenshot, note the right slider of the blackwhitepoint is at about 136. That spreads the image data across the full data range. The left slider is set as I described above, well into the data.
What the histogram mainly tells me is where to set the black and white points, what is colloquially known as a “contrast stretch”. After that, I just look at the image and figure out if it needs lightening (more likely) or darkening, and apply a curve accordingly. And sometimes I get lucky, as with this image, in that the subject can be manipulated separately from the background just using a curve, and not having to resort to layer masks or other stuff.
Edit: I just went back and read what I wrote, and it might be a bit hard to navigate. In each screenshot, the upper-left pane shows the tools that have been applied, in order of application from top to bottom. The tool in play is highlighted, and its controls are in the lower-left pane. So, the above sequence of screenshots goes 2-3-1, where 2 is the blackwhitepoint tool, 3 is the curve, and 1 is the working color profile application right after opening the image. Sorry if this is confusing…