mirror of
https://github.com/wassname/scikit-image.git
synced 2026-08-08 11:26:12 +08:00
Add documentation on how to contribute to the SciKit.
This commit is contained in:
@@ -0,0 +1,145 @@
|
||||
How to contribute to ``scikits.image``
|
||||
======================================
|
||||
|
||||
Developing Open Source is great fun! Join us on the `scikits-image mailing
|
||||
list <http://groups.google.com/group/scikits-image>`_ 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 <http://mentat.za.net>`_
|
||||
* `Shortest paths <http://mentat.za.net>`_
|
||||
* `Grey-level co-occurrence matrices <http://mentat.za.net/hg>`_
|
||||
* Marching squares (investigate patent issues)
|
||||
* Cached ImageCollection from `supreme <http://mentat.za.net/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 <http://www.cellprofiler.org>`_ 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
|
||||
<http://matplotlib.sourceforge.net/sampledoc/>`_
|
||||
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
|
||||
<http://www.mail-archive.com/numpy-discussion@scipy.org/msg19933.html>`_).
|
||||
|
||||
Development process
|
||||
-------------------
|
||||
* Go to `http://github.com/stefanv/scikits.image
|
||||
<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 <http://tinyurl.com/lll385>`_
|
||||
(also see `LWN article <http://tinyurl.com/nqcbkj>`_).
|
||||
|
||||
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 <http://www.python.org/dev/peps/pep-0008/>`_
|
||||
where possible.
|
||||
* All major changes should be `posted for review
|
||||
<http://codereview.appspot.com>`_ to the `mailing list
|
||||
<http://groups.google.com/group/scikits-image>`_.
|
||||
|
||||
Bugs
|
||||
````
|
||||
Please `report bugs on Github <http://github.com/stefanv/scikits.image>`_.
|
||||
|
||||
@@ -11,30 +11,37 @@
|
||||
<tr valign="top"><td width="50%">
|
||||
<p class="biglink">
|
||||
<a class="biglink" href="{{ pathto('overview') }}">
|
||||
Overview</a><br>
|
||||
Overview</a><br/>
|
||||
<span class="linkdescr">
|
||||
Introduction to {{project}}.
|
||||
</span></p>
|
||||
|
||||
<p class="biglink">
|
||||
<a class="biglink" href="{{ pathto('install') }}">
|
||||
Installation Steps</a><br>
|
||||
Installation Steps</a><br/>
|
||||
<span class="linkdescr">
|
||||
How to install {{project}}.
|
||||
</span></p>
|
||||
</span></p>
|
||||
|
||||
<p class="biglink">
|
||||
<a class="biglink" href="{{ pathto('contribute') }}">
|
||||
Contribute</a><br/>
|
||||
<span class="linkdescr">
|
||||
Take part in development.
|
||||
</span></p>
|
||||
|
||||
</td><td width="50%">
|
||||
|
||||
<p class="biglink">
|
||||
<a class="biglink" href="{{ pathto('api/api') }}">
|
||||
API Reference</a><br>
|
||||
API Reference</a><br/>
|
||||
<span class="linkdescr">
|
||||
Documentation for the functions included in {{project}}.
|
||||
</span></p>
|
||||
|
||||
<p class="biglink">
|
||||
<a class="biglink" href="{{ pathto('license') }}">
|
||||
License Info</a><br>
|
||||
License Info</a><br/>
|
||||
<span class="linkdescr">
|
||||
Conditions on the use and redistribution of this package.
|
||||
</span></p>
|
||||
@@ -47,14 +54,14 @@
|
||||
<tr valign="top"><td width="50%">
|
||||
<p class="biglink">
|
||||
<a class="biglink" href="{{ pathto('contents') }}">
|
||||
Table of Contents</a><br>
|
||||
Table of Contents</a><br/>
|
||||
<span class="linkdescr">
|
||||
Lists all sections and subsections.
|
||||
</span></p>
|
||||
|
||||
<p class="biglink">
|
||||
<a class="biglink" href="{{ pathto('search') }}">
|
||||
Search Page</a><br>
|
||||
Search Page</a><br/>
|
||||
<span class="linkdescr">
|
||||
Search this documentation.
|
||||
</span></p>
|
||||
@@ -63,7 +70,7 @@
|
||||
|
||||
<p class="biglink">
|
||||
<a class="biglink" href="{{ pathto('genindex') }}">
|
||||
Index</a><br>
|
||||
Index</a><br/>
|
||||
<span class="linkdescr">
|
||||
All functions, classes, terms.
|
||||
</span></p>
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
.. include:: ../../TASKS.txt
|
||||
|
||||
Reference in New Issue
Block a user