I'm one of the creators of Word Lens. Although there are some OCR libraries out there (like tesseract), we decided to make our own in order to get better results and performance. Our general algorithm goes like this:
- copy the image from the camera and get its grayscale component
- level out the image so the text stands out clearly against the background
- draw boxes around things that look like characters & sentences
- do OCR: match the pixels in each box against a database of characters -- this is actually pretty hard!
- collect the characters into words, look up in a dictionary (this is hard too, because there will be mistakes in the OCR)
- draw the results back onto the image
Image matching by itself is not good enough, because of the huge variety of fonts, words, and languages out there.
OpenCV is a great library to get up and running with, and to learn more about computer vision in general. I would recommend building off their examples, and playing around there. Have fun!