Scanything is a machine vision based template scanner. Optical scanning enables large templates to be scanned in quickly. It is designed to work with a USB video camera on any machine running Mach3 (Parallel port ONLY, USB and Ethernet adapters will not work), Eding CNC or LinuxCNC.
It is still under development but you can download a fully function beta version from the link on the left hand side.
Instructions for installation with Mach3
Download and install Scanything then run Mach3 and go to Config->Config plugins. Enable the SheetCamRemote plugin and restart Mach3. To test the connection, enable the drives on your machine and check if the jog buttons in Scanything work. Note jogging won't work if Mach is in handwheel jog mode.
USB microscopes can be used but they tend to vary in quality. Generally 640x480 resolution is fine. Frame rate is more important than resolution and higher resolution cameras have a lower frame rate. For best results you need a steady 30FPS. Some high resolution cameras use image stabilization in lower resolution modes. This will seriously affect scanning accuracy.
Avoid generic Cheap import cameras like this one as they cannot maintain an adequate frame rate and tend to drift out of focus.
Supereyes cameras work reasonably well and are fairly cheap.
The Andonstar branded cameras available through eBay, Amazon and other auction sites also work well.
For fairly detailed parts set up the camera so the field of view is about 10-15mm (0.4"-0.6") wide. For larger parts you may want to zoom out a bit as you will be able to scan faster. With a 13mm(1/2") field of view worst case error is generally around 0.25mm(0.01") at feed rates of up to 1m/min (40IPM). Accuracy increases at lower feed rates. Increasing the light level shortens the exposure time which gives a sharper image.
You may need to spray paint the edges of your templates to get good contrast. In cases where you need to remove the paint afterwards, you can use water soluble spray hair dye.