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 * `Hough transform `_ * `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/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. 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 ``ImageCollection`` to initialise either from list of files or from list of images. For example, ``ic = ImageCollection([img1, img2])``. * Update ``qt_plugin.py`` to view collections. docs ```` * Write topics for the `user guide `_: - Introduction to I/O and image processing with examples