Using OpenCV and Python to stitch puzzle images together
If this is a small fun project that you are trying to do, you can compare image histograms or use SIFT/SURF. I don't think there is implementation of SIFT, SURF in Python API. If you can find compatible equivalent, you can do it.
Comparing images are very much dependent on the data-set that you have. Some techniques work more better than the other.
I am trying to use OpenCV and Python to stitch together several hundred puzzle piece images into one large, complete image.  All of the images are digitized and are in a PNG format.  The pieces were originally from a scan and extracted into individual pieces, so they have transparent backgrounds and are each a single piece.  What is the process of comparing them and finding their matches using OpenCV?
The plan is that the images and puzzle pieces will always be different and this python program will take a scan of all the pieces laid out, crop out the pieces (which it does now), and build the puzzle back.