Where to learn basic principles used in Feature/Template detection ?
I''ve learnt basics of OpenCV and learnt how to write code which does something bit more complex than HelloWorld program. Anyways, In this meanwhile I've learnt how to write Feature and template based detection program using supported list of algorithms(ORB, FAST, SURF etc). In this I've learned how to detect features, how to detect descriptors, how to find matches based on descriptors and at last how to draw them using drawMaches().
Now I want to replace this drawMatches() with some custom logic...but I don't know what are the fundamental principles used by this drawMatches() and also I'm unaware what type/kind of data/information these keypoints and desciptors do carry.
So I'm looking some help, to understand these things fundamentally. I'm absolutely unaware where should I start from, so please provide pointers/information/url from where I can do my head-start.