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 ----- :doc:`gsoc2011` :doc:`coverage_table` Infrastructure -------------- - 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. * Connected components * `Grey-level co-occurrence matrices `_ * Marching squares * 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/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 ````````````````````` * Should take kernel or function for parameter (currently only takes function) * Kernel shape should be specifiable (currently defaults to image shape) * Due to the above, the tests run unnecessarily slowly io `` * Update ``qt_plugin.py`` and other plugins to view collections. * Rewrite GTK backend using GObject Introspection for Py3K compatibility. * Add medical / biological and GIS image format plugins. * Add DICOM plugin for `GDCM `__. docs ```` * Write topics for the `user guide `_: - Introduction to I/O and image processing with examples * Build docs outside source directory * Integrate BiBTeX plugin into Sphinx build * Create a kick-ass website Implement Algorithms ```````````````````` - Histograms of oriented gradients - Fast radon transform - Graph cut segmentation - Probabilistic Hough transform