I use OpenCV - it's simple and written in C so it's quite easy to write a nice "image processing" software with it
one thing that i don't recommend is to use a webcam as an input of the system
why?
because webcam has quite poor resolution and is very sensitive to ambient light changes
but for simple vision system I've used webcam