I'll expand on this later (and maybe even some documentation...), but for now know that you can use mjpg-streamer with OpenCV to write simple little filter plugins that can process the image from the webcam, and change what is streamed out via HTTP. You can install the mjpg-streamer-cv or mjpg-streamer-py packages using the
instructions on our github repo.
We used it on our robot today with a python script to do image processing and networktables operations (Lifecam 3000, 320x240, 15fps, 30 quality), and it seemed to be about 20% CPU usage. Not too shabby.
In theory, you could use this on a RPi or other platform too, as I've pushed the changes (plus some significant build system improvements) to mjpg-streamer upstream.