Contributing

From BoofCV
Revision as of 10:01, 1 November 2011 by Peter (talk | contribs)
Jump to navigationJump to search

Ways to Contribute

BoofCV is an open source project and in order for it to grow its users need contribute to the project! Even if you don't know computer vision or how to program there are many ways you can contribute.

Specific List

The follow tasks are fairly specific and can be done without requiring major changes to the library:

  1. Android support
    1. Identify incompatibilities with Android's API
    2. Help come up with solutions
    3. Create Android examples
  2. Wavelets
    1. Arbitrary length Coiflet coefficients
    2. Arbitrary length Daub coefficients
    3. Verify that Biorthogonal Daub is buggy and fix
    4. Don't add any addition jar file requires for wavelet tasks
  3. Corner detectors
    1. Add option to process image border in SSD feature detectors
  4. Modify BRIEF so that it can describe feature partially outside of image
  5. Add fast non-maximum suppression algorithm
  6. See in code comments for improving Canny edge's speed


Non-Coding Tasks

Non-coding tasks can be done by just about anyone. Typically these involve updating documentation and reporting problems. Design changes should be suggested to the message board.

  1. Citing BoofCV on projects and papers which use it!
  2. Reporting bugs as they are found.
  3. Fixing spelling and grammar errors on the wiki.
  4. Checking links on the wiki.
  5. Adding tutorials to the wiki.
  6. Quality control on JavaDOC.
  7. Suggesting ways to improve the API.

Coding Tasks

There is plenty of room for improvement left in BoofCV. If you which to donate code or tweak the existing code you should sign up on the BoofCV message board (see the main page for a link) and join the discussion. An important part of BoofCV is validating the correctness of the library. Making sure that each piece of code does what it says it does or that it is a correct implementation of the algorithm cited requires time and many eyes.

  1. Fixing bugs which have been reported.
  2. Adding unit tests.
  3. Adding system level tests.
  4. Implementing new algorithms.
  5. Validating the correctness of algorithms and implementations.
  6. Improve demo Applets.