Random Updates!

It's been a while and a lot has happened. If you've read my previous post, I have been working on the Sudoku solver project. In a wonderful coincidence of fate, I was able to do it as part of a project I came up with for my parallel computing class at the University of South Carolina (CSCE 569).

The Results

It's terrible! In terms of real-time solving of the Sudoku puzzle, the project completely missed the mark. It terms of capturing and solving the puzzle, it does better than I ever thought it would. I'm using OpenCV for the Sudoku extraction algorithm and am implementing the digit recognizer using a K nearest neighbor technique. More information about the project can be found at this link here.

What's Next?

This project sparked my interest in image processing with respect to machine vision applications. So, I've decided to start another project to create a library to do image processing on mobile platforms. OpenCV actually has an Android/iOS compatible version, but I wanted to create something more streamlined with simple features. The repository for this project can be found here. I've already implemented a few features (grayscale, edge detection, Gaussian blur, etc.) in RenderScript. I'm going to compare this to the native Java version and see if there's any noticeable speedup. I suspect there will be a significant increase unless my RenderScript code is horrible (it probably is :-P). I've noticed that the intrinsic RenderScript functions are much faster than any basic implementation because they are fine tuned for the hardware and written on an extremely low level (I'm talking assembly code in some cases here). You can't get much better performance in that respect.