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 a derivative e for each of the first and second row projections; determine a derivative for each of the first and second column projections; determine an x-offset and a y-offset for the second image relative to the first image based, at least in part, on the derivatives of the first and second row projections and the derivatives of 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.