Are you happy with your logging solution? Would you help us out by taking a 30-second survey? Click here


Image Processing SciKit (Toolbox for SciPy)

Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star half bd79095782ee4930099175e5ce7f4c89fa3ddabcd56fffcc7c74f6f2a2d46b27 (2 ratings)
Rated 4.5 out of 5
Subscribe to updates I use scikit-image

Statistics on scikit-image

Number of watchers on Github 2134
Number of open issues 382
Average time to close an issue 5 days
Main language Python
Average time to merge a PR 5 days
Open pull requests 235+
Closed pull requests 58+
Last commit over 1 year ago
Repo Created over 8 years ago
Repo Last Updated over 1 year ago
Size 52.9 MB
Homepage http://scikit-ima...
Organization / Authorscikit-image
Page Updated
Do you use scikit-image? Leave a review!
View open issues (382)
View scikit-image activity
View on github
Fresh, new opensource launches πŸš€πŸš€πŸš€
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating scikit-image for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)
What people are saying about scikit-image Leave a review
PROBLEM: For the same pair of images Matlab ssim value and that of skimage compare_ssim deviates!!!

scikit-image: Image processing in Python


Installation from binaries

  • Debian/Ubuntu: sudo apt-get install python-skimage
  • OSX: pip install scikit-image
  • Anaconda: conda install scikit-image
  • Windows: Download Windows binaries

Also see installing scikit-image.

Installation from source

Install dependencies using:

pip install -r requirements.txt

Then, install scikit-image using:

$ pip install .

If you plan to develop the package, you may run it directly from source:

$ pip install -e .  # Do this once to add package to Python path

Every time you modify Cython files, also run:

$ python build_ext -i  # Build binary extensions

License (Modified BSD)

Copyright (C) 2011, the scikit-image team All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. Neither the name of skimage nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.


scikit-image open issues Ask a question     (View All Issues)
  • almost 3 years scikit-image build fail on "Cython not found"
  • almost 3 years Segfaults from not-initialized pointer in skimage/measure/_ccomp.pyx
  • almost 3 years regionprops ellipse properties give strange values for concave shapes and shapes with holes
  • almost 3 years Web gallery examples are by default showing dev version instead of 0.12.x
  • almost 3 years Numerical inaccuracies with the random_walker
  • almost 3 years Add documentation for deprecation process in CONTRIBUTING.txt
  • almost 3 years Add different methods for HOG block normalization
  • almost 3 years Add 3D/nD support for `measure.grid_points_in_poly` and `measure.points_in_poly`
  • almost 3 years [ENH] Fractal dimension (Minkowski–Bouligand)
  • almost 3 years Multidimensional structure tensor
  • almost 3 years Implement quality metrics for image segmentation, classification and object detection
  • almost 3 years Update equalize_adapthist docstring to clarify default kernal size
  • about 3 years Broken example:
  • about 3 years Hog features normalization
  • about 3 years blob_log, blob_dog and blob_doh error when not detecting peaks
  • about 3 years Parallel computing skimage.feature.peak_local_max
  • about 3 years Include image outputs from examples inline in docs
  • about 3 years Add dask as opt dep.
  • about 3 years Error in extracting normal of the faces in marching cube.
  • about 3 years Build error in Ubuntu 14.04
  • about 3 years could measure.regionprops() work on squares and rectangles ?
  • about 3 years New stereo images in data directory
  • about 3 years Investigate doctr for deploying docs on Travis
  • about 3 years Separate out filter functions from peak finding in blob_dog, blob_log
  • about 3 years Feature request: balloon segmentation
  • about 3 years Lineprofile plugin misbehaves with CollectionViewer from skimage.viewer
  • about 3 years Implement inpainting algorithm: Total Variation
  • about 3 years Implement inpainting algorithm: Euler's Elastica
  • about 3 years Change 2D Hessian matrix order from y/x to r/c
  • about 3 years Wish list: geodesic watershed
scikit-image open pull requests (View All Pulls)
  • 3D test for register_translation, as required by TODO.txt
  • Use --pre flag for Travis pip installs.
  • Raise at least one error for parallel tests.
  • added doc to PaintTool
  • Remove the freeimage plugin
  • DOC: Fix docsting in peak_local_max
  • MAINT: fixes #1652 (Temporary file from file_or_url_context is not removed on error)
  • Handle tempita templed cython files
  • MRG: 3D skeletonization
  • Delta cmc 0
  • Add comparison and reset capability to novice module
  • [WIP] Remove use of lena in TestMorphology
  • Profile line for 3d array added to
  • Improved drawing in example
  • Fixing greycomatrix swapped angles and adding new texture features
  • Line integral convolution
  • Added new "thin" method based on Guo and Hall 1989
  • [WIP]Β Example of see also hyperlinks between gallery examples
  • ENH: routine to estimate the noise standard deviation from an image
  • Implements wavelet denoising
  • Kahan summation
  • maximum Feret diameter in regionprops
  • Frangi filter support
  • skimage.transform.hough_line: new parameter to set bin size in the rho dimension
  • [WIP] region_adjacency_graph(), merge_hierarchical() and selective search
  • peak_local_max: num_peaks param is ignored if labels param is also used
  • added ridge-directed-ring-detector + demo notebook
  • Added Richerson Lucy to restoration example
  • restoration.denoise_bilateral and zeros image
  • WIP: Proof of concept for Dask/NumPy shared codebase
  • 0.12.0 release
  • Template mean is precalculated and referenced
  • Added fused type warping
  • Affine transform xy
  • Pull request for Issue #1962
  • Modified .gitignore to properly ignore auto_example files
  • HOG enhancement to accept color images
  • Implemention of a simple Chan-Vese Algorithm
  • Github templates
  • Border fix
  • [MRG] Clip output in denoise_tv_bregman
  • Apparent bug in blob pruning code
  • Adds PyWavelets as required dependency
  • Rgb Hog
  • Polygon approximation
  • option to read tiff metadata
  • V0.12.x
  • JPEG quality argument in imsave
  • Add colorspaces: YUV, YIQ, YPbPr, YCbCr
  • [WIP] Hierarchical Merging of Region Boundary RAGs
  • Greycomatrix swap angles (refers to PR #1871)
  • Make the img_num argument optional
  • Lewiner marchin cubes algorithm
  • Gabor aspect ratio
  • Handling IO objects with tifffile
  • Improved SimilarityTransform, new EuclideanTransform class
  • [WIP] Add line_nd to draw module
  • Fix `skimage.hog` normalization
  • Do not require cython for normal builds
  • Added multi-channel version of felzenszwalb
  • Add Nd support to clear_border
  • Tool for checking completeness of sdist
  • DOC: Guide new contributors to HTTPS, not SSH
  • [WIP] Sphinx gallery for example gallery
  • Adding threshold_multiotsu.
  • Active contour callback
  • Fixing Error and documentation on Otsu Threshold
  • [ENH] Ported feature.blob_dog and feature.blob_log for 3D images
  • ENH: mosaic to choose the best threshold algorithm
  • ENH: generalize hough_peak functions
  • Allow images with singleton dimensions for regionprops
  • Improved region boundary RAG docs
  • Add threshold minimum algorithm
  • MAINT: around label and regionprops functions.
  • FIX: select num_peaks if labels is specified
  • Add uint16 images support for co-occurrence matrix
  • DOC ENH + API fix on houghline transform
  • [WIP] add morlet filters
  • Default parameters
  • Fix outdated GraphicsGems link
  • Docstring
  • Reduce whitespace around plots
  • Move `skimage.measure.label` references to the docstring
  • WIP DOC: Refactor example skeletonize in the gallery
  • Frangi filter support (#1769 upgrade)
  • Switched gray to multichannel version
  • Change show_rag back to draw_rag
  • Fix threshold_triangle to work with non-integer images.
  • Update
  • Fix ssim example
  • Remove util.pad in favor of numpy.pad
  • DOC: image inversion
  • Added titles and text to make example more clear
  • Added titles and text to make example more clear
  • Added titles and text to the subplots to make it easier to new comers for example
  • ENH: Implements wavelet denoising (from #1833)
  • Improve docstrings for captions
  • Fix crash on import if byte-compiled level 2
  • Adding border_padding to montage2d
  • Insert metadata in docstrings of images in*
  • MAINT: Radon (docstring, API, PEP8)
  • Speedup `inpaint_biharmonic`
  • MAINT (PEP8)
  • Fix 1 broken test in _shared not executed by nose/travis
  • API: clip_negative will be set to false by default in version 0.15 (func: dtype_limits)
  • TEST: define seed in setup() / Fix random test failure
  • DOC: tiny fixes in gallery
  • [WIP] Updating equalize_adapthist() args and docstring
  • Add compact watershed and clean up existing watershed
  • normalized cut and region adjacency graph additional options
  • more closesly match the BayesShrink paper in _wavelet_threshold
  • DOC: shows wavelet denoising in YCbCr color space (WIP)
  • Add pywavelets to runtime requirements in DEPENDS.txt
  • Change documentation page favicon
  • Remove usages of `subplots_adjust`
  • [MRG+1] Add felzenszwalb shape validation
  • Implemented Modified Connected Component Algorithm
  • Defer matplotlib imports
  • Add coordinate convertion routines to `skimage.util`
  • WIP local threshold niblack sauvola (from Jeysonmc PR)
  • FIX: Use filters.gaussian globally. Fixes #2250.
  • HOG: ensure visualisation is in dtype_limits + maint.
  • Feature segmentation fastDRaW
  • Bump min scipy version
  • Added catch for zero image in threshold_li
  • Update the default boundary mode in transform.swirl
  • Update hessian matrix code to include order kwarg
  • Added bresenham-based supercover line algorithm as a argument to line() with default option set to false
  • threshold_multiotsu: corrections proposed + improvements.
  • Add illuminant and observer parameters to the rgb2lab and lab2rgb functions.
  • Add scattering transform
  • Implemented Kadir and Brady's Saliency detection
  • Add new "thin" method based on Guo and Hall 1989
  • Raise warning when attempting to save boolean image
  • Remove incorrect input type assumption in doctrings for rgb2hsv and h…
  • Adding orientation to draw.ellipse.
  • Clarify difference between filled_area, area, and convex_hull_area in regionprops
  • Fix no peaks blob log
  • Editing
  • add init parameters for Ellipse and Circle models
  • Handle cases for label2rgb where input labels are negative and/or nonconsecutive
  • Rename `_shared` to `shared`
  • extend draw.ellipse by orientation
  • Added a check for empty array in
  • Solved Gaussian value range #2383
  • Separate out filter functions from peak finding in blob_dog, blob_log
  • Deprecate "dynamic_range" in favor of "value_range"
  • labelling: Improved background-relatest tests
  • Add gallery Lucy-Richardson deconvolution algorithm
  • Update Travis Script
  • Improved input parameters handling in `_sift_read`
  • MRG: update build matrix for Python 3.6
  • Detection of local extrema from morphology
  • Turn exclude_border off in peak_local_max by default
  • add threshold Wolf Phansalskar
  • Bug fix for Sauvola and Niblack thresholding
  • improve geometric models fitting (line, circle) using LSM
  • DOC: add deprecation procedure
  • NEW: add shannon entropy
  • add init params for Ellipse & Circle and RANSAC
  • ENH: Add histogram mapper to exposure module.
  • BUG: make plot_matches compatible with Matplotlib 2.0.1
  • BUG: make resize with order=0 more robust to floating-point rounding
  • ENH: add cycle spinning routine
  • Improve the support for 1D images in `color.gray2rgb`
  • Add unsharp mask feature and gallery example
  • Add lookfor function in skimage
  • region properties. bbox_area returns image area instead of bbox area
  • Add padding_width to montage2d and add montage_rgb
  • Eliminate some TODOs for 0.14
  • MAINT: remove unused argument in private inpainting function
  • WIP: document our guidelines/coding conventions
  • MAINT _shared.testing now contains pytest's useful functions
  • Add nD support to image moments computation
  • WIP: Implement contour finding for binary images
  • add callback to active contour model
  • Experiment with pep8_speaks
  • Add excepted version py3.5 and 3.6 in opt. req.
  • DOC: Update in-place installation instructions in README
  • Warning in local binary pattern if image dtype is not integer
  • Restructuring of api #2538
  • fix-2551: prevented NaN in convoluted matrix
  • Add howto on testing to "Contribute"
  • DOC: Add section on API discovery
  • BUG: Fix greycoprops correlation always returning 1
  • Make HOG visualization use midpoints of orientation bins
  • Merging deconvolution examples.
  • WIP: Polar transform
  • WIP: Multidimensional structure tensor
  • WIP: add range option for histogram.
  • Ratio test for descriptor matching
  • Improve hysteresis docstring
  • WIP: remove local copy of sphinx gallery and use latest release
  • MAINT: use relative imports instead of absolute ones
  • Added flip function
  • as_gray replaces as_grey in imread() and load()
  • `plot_matches` function in `feature` can now show the images vertically
  • Cython warnings
  • Correct bug in random walker when seed pixels are isolated inside pruned zones
  • Corrected bug related to border value of morphology.binary_erosion
  • Added small galleries in the API
  • Specify variable gradient is taken with respect to
  • Ensure warning to provide bool array is warranted
  • Faster convex_hull_image polygon drawing for 2D images
  • WIP: Credit Reviewers in Release Notes
  • Adding new functionality/cleaning up skimage wrappers to ndi.morphology functions
  • Color spaces C1C2C3 and MAXRGB added.
  • Add Mock RNG for Testing
  • Add a subset of LFW dataset to ``
  • Speedup 2D warping for affine transformations
  • EXA example for haar like features
  • Changing iradon filters to match those of MATLAB and Octave
  • allow mixed dtypes in compare_ssim, compare_psnr, etc.
  • fix gaussian filtering for arbitrary spatial dims
  • Extension of register_translation to enable subpixel precision in 3D and optionally disable error calculation
  • Experiment replacing Cython with Numba in _moments
  • Add Computation of Image Moments to Coordinates
  • Generator version of cut_normalized
  • Add 3D support to `blob_dog` and `blob_log`
  • Make `regionprops._slice` a user-facing property
  • reworded paragraph on order of iteration
  • Corrected error with scales attribute in ORB.detect_and_extract
  • Better document remove_small_objects behaviour: int vs bool
  • [WIP] Restandardize handling of Multi-Image files
  • [WIP] DOC changing the doc in plot_glcm
  • [WIP] Optional multichannel histograms
  • Raise warning when attempting to save boolean image
  • `plot_matches` function in `feature` can now show the images vertically
  • [WIP] Add 3D support to sobel
  • Watershed segmentation: make usable for large arrays
  • Support contours in future.manual_segmentation
  • [WIP] Refactor histogram to separate logic for multi- and single-channel images
  • Implementation of unsharp masking filter.
  • Updated LineModelND.rediduals
  • Remove warning when data type is bool
scikit-image questions on Stackoverflow (View All Questions)
  • Why does scikit-image return NaN for the color difference of this color with itself?
  • scikit-image Gabor filter error: `filter weights array has incorrect shape`
  • Python scikit-image pull request Travis CI Python 2.7 build fails
  • How to set a cut off value for blob_doh in scikit-image
  • counting objects using scikit-image label
  • Importing SciPy or scikit-image, "from scipy.linalg import _fblas: Import Error: DLL failed"
  • Object border in an image - scikit image
  • Count number of objects using watershed algorithm - Scikit-image
  • Change background using scikit-image?
  • It is possible deleting Skeleton small branches in opencv or scikit image?
  • Uniform LBP with scikit-image local_binary_pattern function
  • How to find contour hierarchy with scikit-image python?
  • How to read mp4 video to be processed by scikit-image?
  • scikit-image LineModel() estimate incorrect
  • TIFF File invalid or unsupported after gaussin filter in scikit-image library
  • How to perform image segmentation on 4-band geotiff using Python's scikit-image?
  • Removing text using Scikit-image
  • issue with dilation in scikit-image
  • How to install scikit-image? (Windows - Python 3.4)
  • How to extract green channel from RGB image in Python using Scikit-Image library?
  • Error in Installing Scikit-image from source code
  • scikit-image - Missing DLL
  • Error using built in gabor filters in scikit-image in Python
  • colorspace conversion using scikit-image
  • cannot install Scikit-image in python
  • How can I install scikit-image without internet?
  • How to build scikit-image in travis-ci?
  • Error in scikit-image example: RAG Thresholding
  • What to choose to begin with ComputerVision: Scikit-image or OpenCV?
  • Python with scikit-image to invert colors Back and white
scikit-image list of languages used
More projects by scikit-image View all
Other projects in Python