diff --git a/TASKS.txt b/TASKS.txt new file mode 100644 index 00000000..e4ae8909 --- /dev/null +++ b/TASKS.txt @@ -0,0 +1,145 @@ +How to contribute to ``scikits.image`` +====================================== + +Developing Open Source is great fun! Join us on the `scikits-image mailing +list `_ and tell us which of the +following challenges you'd like to solve. + +* Mentoring is available for those new to scientific programming in Python. +* The technical detail of the `development process`_ is given below. + +.. contents:: + :local: + +Tasks +----- + +Adapt existing code for use +``````````````````````````` +These snippets and packages have already been written. Some need to be +modified to work as part of the scikit, others may be lacking in documentation +or tests. + + * Connected components + * Color-space manipulations (partially done by Nicolas Pinto) + * `Hough transform `_ + * `Shortest paths `_ + * `Grey-level co-occurrence matrices `_ + * Marching squares (investigate patent issues) + * Cached ImageCollection from `supreme `_ + * Nadav's bilateral filtering (first compare against CellProfile's code) + * 2D iso-contour finding (sub-pixel precision) [ask Zach Pincus] + * 2D image warping via thin-plate splines [ask Zach Pincus] + +Merge code provided by `CellProfiler `_ team +````````````````````````````````````````````````````````````````````````` +* Canny filter (Canny, J., *A Computational Approach To Edge Detection*, + IEEE Trans. Pattern Analysis and Machine Intelligence, 8:679-714, 1986) +* Prewitt filter - convolution with ``[[1,1,1], [0,0,0], [-1,-1,-1]]`` to + detect edges +* Sobel filter - convolution with ``[[1,2,1], [0,0,0], [-1,-2,-1]]`` to + detect edges +* Roberts filter - convolution with diagonal and anti-diagonal + kernels to detect edges +* Bilateral filter + (http://groups.csail.mit.edu/graphics/bilagrid/bilagrid_web.pdf) + - edge detection using both spatial and intensity information +* Convex hulls of objects in a labels matrix +* Minimum enclosing circles of objects in a labels matrix +* Map-coloring of a labels matrix - assign each label a color so that + all adjacent labels have different colors +* Skeletonize, spur removal, thinning, thickening, and other morphological + operations on binary images, framework for creating arbitrary morphological + operations using a 3x3 grid. +* Skeletonize objects in a labels matrix + +Their SVN repository is read-accessible at + +- https://svn.broadinstitute.org/CellProfiler/trunk/CellProfiler/pyCellProfiler/ + +The files for the above algorithms are + +- https://svn.broadinstitute.org/CellProfiler/trunk/CellProfiler/pyCellProfiler/cellprofiler/cpmath/cpmorphology.py +- https://svn.broadinstitute.org/CellProfiler/trunk/CellProfiler/pyCellProfiler/cellprofiler/cpmath/filter.py + +There are test suites for the files at + +- https://svn.broadinstitute.org/CellProfiler/trunk/CellProfiler/pyCellProfiler/cellprofiler/cpmath/tests/test_cpmorphology.py +- https://svn.broadinstitute.org/CellProfiler/trunk/CellProfiler/pyCellProfiler/cellprofiler/cpmath/tests/test_filter.py + +Quoting a message from Lee Kamentsky to Stefan van der Walt sent on +5 August 2009:: + + We're part of the Broad Institute which is non-profit. We would be happy + to include our algorithm code in SciPy under the BSD license since that is + more appropriate for a library that might be integrated into a + commercial product whereas CellProfiler needs the more stringent + protection of GPL as an application. + +Thanks to Lee Kamentsky, Thouis Jones and Anne Carpenter and their colleagues +who contributed. + +Add image output to documentation +````````````````````````````````` +Taken from a post by David Warde-Farley:: + + It would be really helpful to have the output of those plot + commands. `John Hunter's sampledoc tutorial + `_ + contains instructions on how to do the requisite Sphinx twiddling + to get matplotlib plots plotted in the Sphinx output, it's just a + matter of someone actually *doing* it. + + This is exactly the kind of low-hanging fruit a SciPy/scikits/open + source newcomer (or long-time user, first-time contributor) could do + to get their feet wet, by the way :) It's basically a matter of + + a) forking the project on GitHub, + b) following the instructions at the sampledoc tutorial to make + plots work, + c) committing and pushing to your own github branch and + d) pinging Stefan to go look/update the live docs. + +Write new functionality +``````````````````````` +* Plugin structure for image IO +* Handle multi-page images (possibly as ImageCollection?) + +Complete the build process +`````````````````````````` +* Fix scripts for building Cython extensions (see `this thread + `_). + +Development process +------------------- + * Go to `http://github.com/stefanv/scikits.image + `_ and follow the instructions on + making your own fork/branch. + * Make changes to your branch, committing locally as you progress. + * Push your changes back to github. + * Ping stefan to request a merge into the main development branch. + +.. note:: + + Do *not* merge the main branch into yours. You may rebase, + as long as you are `aware of its dangers `_ + (also see `LWN article `_). + +All of this may be intimidating if you've never used git before, so we'd +happily accept plain old unified diffs (``git diff`` or ``diff -u a.txt +b.txt``) as well. + +Guidelines: +``````````` + * All code should have tests. + * All code should be documented. + * Follow the `Python PEPs `_ + where possible. + * All major changes should be `posted for review + `_ to the `mailing list + `_. + +Bugs +```` +Please `report bugs on Github `_. + diff --git a/doc/source/_templates/index.html b/doc/source/_templates/index.html index 8c751c6e..5e3087ac 100644 --- a/doc/source/_templates/index.html +++ b/doc/source/_templates/index.html @@ -11,30 +11,37 @@ +

+ + @@ -47,14 +54,14 @@ @@ -63,7 +70,7 @@ diff --git a/doc/source/contribute.txt b/doc/source/contribute.txt new file mode 100644 index 00000000..8ed8e081 --- /dev/null +++ b/doc/source/contribute.txt @@ -0,0 +1,2 @@ +.. include:: ../../TASKS.txt +