You really don't need FileStorage in read function. To read Mat you can write
Mat ALPHA;
fn["alpha"] >> ALPHA;

That's all :) See doc on FileStorage or examples of its usage in OpenCV.

Ok, when you complete all changes, I'll review the algorithm (before I reviewed the API only :) )
Thanks for your patience! I hope this contributing to OpenCV might be useful for you too.