I agree with GeorgM and Floris that some point-based algebra would be nice, but even being able to say something like
keep_RGB "(R > 40 AND G > 40 AND B > 40) AND (R > B) AND (G < B)" would give the tool a lot more power.
@Floris: I'm still looking for a less tedious way to classify water bodies, wood, vegetation, etc. My biggest need is extracting noisy water surface elevation from point clouds or DEMs for river flights with SfM for
these flights on the Elwha River (~90 so far)
I've had moderate success using supervised classification in Arc, and moderate success using some functions in ImageJ. My best results come from generating a stddev and point density grid and clipping points with a stddev/density threshold where the data start to get noisy, but I still end up with "patches" of false returns.
Lately I've resorted to hand-picking good wetted edge points and generating a synthetic water surface with emperical bayesian kriging algorithms, then applying that to a hand-digitized mask for the wetted width (very tedious). Object-based classification looks like it might be really helpful for the water masking portion, but I haven't checked out eCognition (looks expensive, but I will definitely investigate). Optiks (FOSS) also looks promising.