Smartscan does this. Execution is about 60% accurate in decent lighting conditions. Forget about using it for URLs with non-alphanumerical characters. But I'd imagine that it would be incredibly difficult to make an app that gets it right all the time.