cvBlob library for Android
Planted October 9, 2011
I recently moved to Barcelona to start working here. Although I’m not working in any computer-vision based project, I still keep a high interest in this field, trying to conduct as many personal projects as possible. My work team is highly motivated and full of professionals, and we all keep our personal projects alongside our work.
Recently I met Fegabe in Barcelona, who’s a member of the GTUG Barcelona core team and an Android Developer. We decided to start a Sudoku Solver together for Android. Although there are already many of them published on the Market, we just wanted to do it for fun and to get a bit deeper into computer vision and pattern recognition. There is an OpenCV port for Android, but we decided to keep our implementation pure Java.
The following steps are applied in order to capture, detect and solve the Sudoku:
-The user must take a picture of the Sudoku using the device’s camera.
-After the picture is taken, Thresholding is applied to the image, to get a black and white version. Of course, there is some preprocessing involved. Things like smoothing out noise, some morphological operations, etc.
-When the picture has been taken, we apply blob detection in order to detect the biggest segment of the image. We work under the assumption that this segment will be the outer line of the Sudoku table.
-Afterwards, we can use the Hough transform to get lines in the image. It returns lines in mathematical terms. So after this step, we’ll know exactly where a line lies… and not just the pixels where it lies.
-When the lines have been detected, it will be easier to locate each individual cell. The number inside will be recognized using a neural network.
-The last step is the easiest: we just solve the sudoku by using any of the known algorithms












































