Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

This is a totally awesome question. Thanks for asking it.

The short answer to your question is that we don't have a super simple way to solve your problem but I can think of a few ways to approach the problem. If I were trying to solve this I would work by assuming that all puzzle pieces are roughly square, and try to find the lines that define the square that best fit the pieces. Once you have that you can define the convexity/concavity that defines the "dangly-ness" or "hole-ness" of each piece. For each piece I would extract the dangley/hole bits so that they are flat on one side, and rectify them so that all the flat sides face one way. I hope that makes sense. From that information I would then define a match function that tries to match the contours (hint Blobs.contour returns a list of (x,y) points for each contour). We hope to get a full suite of contour matching tools in our next release. If you get something that works well we would love to fold it back into the library.

About a year ago DARPA had a contest to reassemble shredded paper bits. You may want to go scour the web and see how other people approached a similar problem.

We just adjusted the karma required to post links, so please feel free to update us with your progress.