There is no "best method", it will vary according to application. There are many trains of thought regarding this subject.
I've done something in that area using Cepstral Analysis. Take a look at this:
Note: I am the author of the above.
Basically, you do the following:
- Sum the target image and the object
- Calculate the Cepstrum of said sum.
- Find the peaks (there will be 2, you have to resolve the ambiguity using something like SAD)
- The location of the peak will tell you the translation you must apply to the image.
I based it off this article: http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=6128658&tag=1
I'm actually in the middle of creating a barcode (1D and 2D) open-source program using this kind of processing. The link to my bitbucket acount is here: https://bitbucket.org/DSevero/
Although the repo is private for now, I should be releasing a first version around January