I have nothing useful to do and was playing with jigsaw puzzle like this:
alt text http://manual.gimp.org/nl/images/filters/examples/render-taj-jigsaw.jpg
and I was wondering if it'd be possible to make a program that assists me in putting it together.
Imagine that I have a small puzzle, like 4x3 pieces, but the little tabs and blanks are non-uniform - different pieces have these tabs in different height, of different shape, of different size. What I'd do is to take pictures of all of these pieces, let a program analyze them and store their attributes somewhere. Then, when I pick up a piece, I could ask the program to tell me which pieces should be its 'neighbours' - or if I have to fill in a blank, it'd tell me how does the wanted puzzle piece(s) look.
Unfortunately I've never did anything with image processing and pattern recognition, so I'd like to ask you for some pointers - how do I recognize a jigsaw piece (basically a square with tabs and holes) in a picture?
Then I'd probably need to rotate it so it's in the right position, scale to some proportion and then measure tab/blank on each side, and also each side's slope, if present.
I know that it would be too time consuming to scan/photograph 1000 pieces of puzzle and use it, this would be just a pet project where I'd learn something new.
The Zolver program, created by students in Python for Linux, is designed to solve real-world and virtual puzzles. It does so using a binary process of comparing the original image and the pieces, cataloging the perimeter of pieces, separating pieces into categories, and then matching them up.
Puzzles of 1000 pieces also usually involve a smaller cut pattern that is repeated 4 or 6 times over the whole jigsaw, and that smaller cut pattern usually also has 180 degrees of rotational symmetry, so a particular shape may appear 8 or 12 times in the puzzle (although with truncation for edge pieces).
Data acquisition
(This is known as Chroma Key, Blue Screen or Background Color method)
Acquisition data processing
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With