After discovering that the accuracy of the chessboard detection is increased by adding a black frame around the chessboard, I went on to create a python library based on what I already had. I created a python/C++ interface and some python routines that use the C++ code.
At the end of all this I ended up with some primitive routines that will classify pictures that contain the chessboard markers into directories. It currently takes a list of pictures that have been marked with the chessboard markers and moves them to different directories. The directories depend on the id that is calculated from the chessboard marker in the image. This means that one can give the algorithm any number of pictures and it will sort them accordingly into separate directories. Further sorting and accuracy changes can be done with camera data, but that is not implemented yet.
How does it work?
At the moment it requires a bit of work to see it work. The src code is located here under the “ilac” branch. To clone the repository from the ilac branch directly you must use the following command:git clone -b ilac https://Joelgranados@github.com/Joelgranados/imagelabel.git
After you have cloned the repository execute “make” to build the python/C++ part. While you are in the imagelabel directory (the one that was created with the clone command), you can execute the python command line and import the ilac package. Once you have managed to import the ilac package, you can use the ilac.get_image_id function to automatically sort pictures that contain chessboard markers. If you don’t have pictures with markers you can go here for some examples. That link contains 3 pictures of 2 different markers. When get_image_id is used, the pictures should go to two different directories.
I tested the code in fedora 14. If you try to build it in some other distro, you might have a problem. You can always contact me and I will gladly assist you :)