You could use OpenCV to write your own OCR system. It implements the k-nearest neighbor algorithm that could be used to recognize arbitrary characters (characters of the MICR in this case). I did something like this using the Java bindings of OpenCV and it gave me good results.
This post got me started with the idea : https://stackoverflow.com/a/9620295/2644645
edit
Roughly, you could do :
- Find a way to extract individual character from you image.
- Normalize these characters (for example if the point of view or the distance vary).
- Manually create your training set for the k-nearest neighbor algorithm. You should also consider a way to save/load the data (I think OpenCV can do this).
- Finally, you can feed unknown characters into the algorithm and it will give you the best match (if k=1) in your training set. Be sure to consider the returned vector dist, as it gives you an idea if it's a good match or not.