I've been wondering every now and then where could I find human-readable descriptions of algorithms for detecting shapes (e.g. lines) from images. Google already found this very nice tutorial describing a couple of edge detection algorithms but I'm still missing a way to detect the geometries (this is a line, there's a rectangle, that's a circle over there, etc.) the "edge pixels" form.
During my studies at EPFL I took a course about pattern recognition. Unfortunetaly, the whole stuff is in French, but here is a cool book: Image Processing, Analysis and Machine Vision 2nd Milan Sonka, Vaclav Hlavac et Roger Boyle PWS publishing, 1998
Here are some pointers at McGill for pattern recognition.
There is also the RAVL project at sourceforge, which is a C++ library for computer vision and pattern recognition.