1. A non-transitory program storage device, readable by a programmable control device and comprising instructions stored thereon to cause the programmable control device to: obtain first and second images each comprising rows and columns of pixels, each pixel having a value; determine a first row projection and a first column projection for the first image and a second row projection and a second column projection for the second image; determine an x-offset and a y-offset for the second image relative to the first image based, at least in part, on the first and second row projections and the first and second column projections; and register the second image with the first image based, at least in part, on the x-offset and a y-offset.