Lighting, focus, and angle. The code needs to take up the majority of the input screen, so it must be pretty darn close to the camera in question. It must have the proper lighting, and there is no such thing as too much. And the card should be as parallel with the camera as possible. It can work, I've made it work before. But it can feel somewhat strange until you get used to it.