Implementing SIFT from scratch in opencv 2 C++