node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »



Aligns two ndarrays up to a translation such that the sum of squared differences between them is minimized. This can be used as a quick preprocess for other more detailed alignment algorithms.

build status


Here is a simple example showing how to use this code to image alignment. First, let's start out with an image:

var baboon = require("luminance")(require("baboon-image"))

Next, let's cut out a patch:

var patch = baboon.lo(222, 215).hi(80, 80)

Which looks like this:

Finally, we can use phase-align to find the patch in the original image like this:

var position = require("phase-align")(patch, baboon)


The above prints out the coordinates of the upper left corner of the patch in the original:

[ 222, 215 ]


Install using npm:

npm install phase-align


require("phase-align")(patch, image[, options])

Finds the pixel coordinates of the occurence of patch within the larger image

  • patch is an ndarray to match
  • image is the image to match within
  • options is an object containing some optional parameters
    • normalize Default true. If set, images are normalized for intensity before matching (except for images whose size is one).

Returns An array of coordinates representing the occurence of patch within image


(c) 2013 Mikola Lysenko. MIT License