1. A computing device comprising: a memory holding at least two input images depicting different parts of a panoramic scene, the images having been captured by a user moving the camera to capture the panorama; and an image stitching component configured to identify, at a processor, a region of overlap between the at least two images; the image stitching component arranged to calculate a displacement vector for each of a plurality of warp points in the region of overlap, where the image stitching component computes a similarity cost map for possible displacement vectors and individual warp points for first and second images of the at least two images, and where a value in a cell of the similarity cost map is a measure of local similarity between the first and second images for the warp point and displacement vector specified by the cell location in the array; the image stitching component arranged to warp the second one of the at least two images using the warp points, and to join the warped second image to the first image.