.. role:: strike .. _howto_contribute: How to contribute to ``skimage`` ====================================== .. toctree:: :hidden: gitwash/index gsoc2011 coverage_table cell_profiler Developing Open Source is great fun! Join us on the `skimage 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. * :doc:`How to use GitHub ` when developing skimage .. contents:: :local: Tasks ----- .. :doc:`gsoc2011` .. :doc:`coverage_table` Implement Algorithms ```````````````````` - Graph cut segmentation - `Image colorization `__ - Fast 2D convex hull (consider using CellProfiler version) `Algorithm overview `__. `One free implementation `_. [Compare against current implementation] - Convex hulls of objects in a labels matrix (simply adapt current convex hull image code--this one's low hanging fruit). Generalise this solution to also skeletonize objects in a labels matrix. Drawing (directly on an ndarray) ```````````````````````````````` - Wu's algorithm for circles - Text rendering Infrastructure -------------- - :strike:`Implement a new backend system so that we may start including PyOpenCL-based algorithms` 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. * :strike:`Connected components` * Nadav's bilateral filtering (first compare against CellProfiler's code, based on http://groups.csail.mit.edu/graphics/bilagrid/bilagrid_web.pdf) Also see https://github.com/stefanv/scikits-image/tree/bilateral * 2D image warping via thin-plate splines [ask Zach Pincus] Merge code provided by `CellProfiler `_ team ````````````````````````````````````````````````````````````````````````` * Roberts filter - convolution with diagonal and anti-diagonal kernels to detect edges * Minimum enclosing circles of objects in a labels matrix * spur removal, thinning, thickening, and other morphological operations on binary images, framework for creating arbitrary morphological operations using a 3x3 grid. Their SVN repository is read-accessible at - https://svn.broadinstitute.org/CellProfiler/trunk/CellProfiler/cellprofiler The files for the above algorithms are - https://svn.broadinstitute.org/CellProfiler/trunk/CellProfiler/cellprofiler/cpmath/cpmorphology.py - https://svn.broadinstitute.org/CellProfiler/trunk/CellProfiler/cellprofiler/cpmath/filter.py There are test suites for the files at - https://svn.broadinstitute.org/CellProfiler/trunk/CellProfiler/cellprofiler/cpmath/tests/test_cpmorphology.py - https://svn.broadinstitute.org/CellProfiler/trunk/CellProfiler/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. In 2010, Vebjorn Ljosa officially released parts of the code under a BSD license (:doc:`cell_profiler` | `original message `_). Thanks to Lee Kamentsky, Thouis Jones and Anne Carpenter and their colleagues who contributed. Rework linear filters ````````````````````` * Fast, SSE2 convolution (high priority) (see prototype in pull requests) * Should take kernel or function for parameter (currently only takes function) * Kernel shape should be specifiable (currently defaults to image shape) io `` * Update ``qt_plugin.py`` and other plugins to view collections. * Rewrite GTK backend using GObject Introspection for Py3K compatibility. * Add DICOM plugin for `GDCM `__. docs ```` * Add examples to the gallery * Write topics for the `user guide `_ * Integrate BiBTeX plugin into Sphinx build