How to contribute
Version 9 (Daniil Osokin, 2014-07-14 06:01 pm)
1 | 1 | h1. How to contribute |
|
---|---|---|---|
2 | 1 | ||
3 | 1 | You can: |
|
4 | 7 | Daniil Osokin | # Help others on "forum":http://answers.opencv.org. |
5 | 1 | # Provide feedback: report bugs, request features. |
|
6 | 8 | Daniil Osokin | # Submit a code: create a ticket with the _Patch_ tracker (issue type). Please note, that we're going to switch to pull requests from github. Here is the right project to fork: https://github.com/Itseez/opencv. |
7 | 8 | Daniil Osokin | # "Donate":https://www.paypal.com/us/cgi-bin/webscr?cmd=_flow&SESSION=S6yP-WpBdj9fqmhF-dA6LlSed0Vmpkyn2rm2uTw38--Z7CnQMJboOIRDTN8&dispatch=5885d80a13c0db1f8e263663d3faee8d7283e7f0184a5674430f290db9e9c846. |
8 | 8 | Daniil Osokin | # Say "thanks":http://sourceforge.net/projects/opencvlibrary/reviews/. |
9 | 3 | Daniil Osokin | |
10 | 8 | Daniil Osokin | *Below are some recommendations for contributors. They are raw, but can be used as a starting point for anybody who wants to see his code added to the library.* |
11 | 3 | Daniil Osokin | |
12 | 1 | We would gladly accept such a contribution, but because of little resources available on our side, I would ask you to do all the preparations. Here is the checklist, including both generic items and the specific things related to your code that I found after brief inspection: |
|
13 | 1 | ||
14 | 4 | Daniil Osokin | # A prerequisite: is the algorithm patented? If yes, then we may not be that interested in putting it in. |
15 | 4 | Daniil Osokin | # License - the current license is fine, it's compatible with OpenCV. |
16 | 4 | Daniil Osokin | # Interface. Here some work is needed to make this code a seamless part of OpenCV. |
17 | 4 | Daniil Osokin | ** @M_PI -> CV_PI@ |
18 | 4 | Daniil Osokin | ** You should remove all the static constants from the header. it's not portable and generally a bad practice. Use defines and enumerations. |
19 | 4 | Daniil Osokin | ** cv:: and std:: should not be used in the header, since all the stuff is already inside cv namespace and we already have "using std::vector", "using std::string" directives. |
20 | 4 | Daniil Osokin | ** "m_" in member names should be dropped, we do not this convention in OpenCV. |
21 | 4 | Daniil Osokin | # Implementation. |
22 | 4 | Daniil Osokin | ** The code should be portable, it should compile fine on ARM too, for example. Therefore, you should not use SSE2 intrinsics outside of conditional compilation. Instead of "#ifdef USE_SSE" you should use "#if CV_SSE2". |
23 | 4 | Daniil Osokin | ** Avoiding duplication of existing OpenCV functionality. |
24 | 4 | Daniil Osokin | ** Writing to cerr should be replaced with CV_Error() calls. |
25 | 4 | Daniil Osokin | # Documentation. |
26 | 4 | Daniil Osokin | ** Documentation in RST format should be provided for the functionality. Check http://docs.opencv.org/modules/features2d/doc/feature_detection_and_description.html#orb as example. |
27 | 4 | Daniil Osokin | # You should provide sample code. |
28 | 4 | Daniil Osokin | ** help() function should be added, check opencv/samples/cpp. |
29 | 4 | Daniil Osokin | # Regression tests - the code should include some regression tests. |
30 | 4 | Daniil Osokin | ** Please, take a look at opencv/modules/features2d/test/test_features2d.cpp. You will need to add a similar test for your code. |
31 | 4 | Daniil Osokin | # Integration |
32 | 9 | Daniil Osokin | ** Take the latest version of our repository or fork from our github mirror at https://github.com/Itseez/opencv/ |
33 | 9 | Daniil Osokin | ** Add your code |
34 | 4 | Daniil Osokin | ** Insert documentation and add the test to the corresponding module |
35 | 4 | Daniil Osokin | ** Build OpenCV, run tests. If you have access to both Linux and Windows - great! Sometimes GCC-approved code does not built with MSVC and vice versa. |
36 | 9 | Daniil Osokin | ** Create pull request on github.com or create patch file or and submit it as patch at http://code.opencv.org/projects/opencv/issues/new. |