pablofdezalc/akaze — pull request #3 by davidok8 (2013-11-17 00:37:51+00:00)
Title: Modifications

Hi Pablo,

Here are some large modifications in order to:
- make the code portable to *VS2010 x64 with OpenMP* (including modifications of **CMakeLists.txt** to create **static libraries** as well, because this causes too much hassle when compiling with VS2010)
- use ```std::string``` instead of ```char[NMAX]```.
- made ```parse_input_options(...)``` function both easier to maintain and to extend.
- Added python script to test AKAZE-based programs.
- ```const bool&``` -> ```bool```, ```const float&``` ->```float```, I think that's overkill for built-in types.
- I find it unsual to put documentation in *.cpp* files instead of *.h* files but OK.

Of course, you don't have to take into account *every* modification I made. I will be happy to discuss my changes with you.

There are still too many compilation warnings on VS2010 because of various implicit conversions between numeric types which you actually disabled with compile flags. I believe it is better to patiently remove these warnings in the code.

**Off-topic: MEX interface**

I made some progress for the mex-interface. However, I ended up not using mexopencv and made my own Makefile to compile opencv in MATLAB. It is still a big headache on Mac because of runtime conflict with dynamic libraries. I believe it is sufficient to add a boolean option in the following function:

```
bool save_keypoints(const std::string& outFile,
const std::vector& kpts,
const cv::Mat& desc, bool save_desc,
bool save_for_matlab_or_python = false);
// if save_for_matlab_or_python,
// don't write number of keypoints and descriptor dimension,
// then in matlab, I/O is easy with
// keypoints = load('keyfile.txt');
```

Best,
David.