Arduino/IC Picture Scanner
The question is broad as weak to powerful processors are used in Arduino designs.  Here we will assume the original Arduino Uno using the ATmega328 processor is to be used.  This processor is too weak to run OpenCV, the popular open-source software normally used for this type of application.  Going on, because of limited memory it is likely only low resolution bit mapped graphics can be processed.  And any effects which change the scanned image (lighting, rotation, scanning-speed &amp; other variables) will be very difficult to deal with.  Controlling the physical world to compensate for these deficiencies, while possible, will tend to make this project impractical.