# scikit-image — Image Processing Algorithms for Python > A collection of image processing algorithms for Python built on NumPy and SciPy, covering filtering, segmentation, morphology, and feature detection. ## Install Save in your project root: # scikit-image — Image Processing Algorithms for Python ## Quick Use ```bash pip install scikit-image python -c "from skimage import io, filters; img = io.imread('photo.png', as_gray=True); edges = filters.sobel(img); io.imsave('edges.png', edges)" ``` ## Introduction scikit-image is an open-source image processing library for Python that provides a well-documented collection of algorithms. Built on NumPy arrays, it integrates cleanly with the scientific Python ecosystem and is widely used in research and production computer vision pipelines. ## What scikit-image Does - Provides 500+ image processing functions organized in submodules - Covers filtering, segmentation, morphology, feature detection, and color space conversion - Operates on NumPy arrays, ensuring compatibility with matplotlib, SciPy, and pandas - Includes I/O utilities for reading and writing common image formats - Supports 2D and 3D image processing for medical and scientific imaging ## Architecture Overview scikit-image is organized into submodules (filters, segmentation, morphology, feature, transform, etc.), each containing pure Python and Cython implementations. Functions accept and return NumPy arrays, keeping memory layout explicit. Performance-critical paths use Cython for C-level speed while maintaining a pure Python fallback. The library follows scikit-learn conventions for API consistency. ## Self-Hosting & Configuration - Install: `pip install scikit-image` or `conda install scikit-image` - Import submodules directly: `from skimage import filters, segmentation, morphology` - Works with any NumPy array — no special image container required - Combine with matplotlib for visualization: `plt.imshow(result)` - Optional dependencies: `pooch` for sample datasets, `SimpleITK` for medical formats ## Key Features - Comprehensive algorithm coverage from basic filters to advanced segmentation - Consistent API where every function takes and returns NumPy arrays - Extensive gallery of examples with over 200 documented recipes - 3D image support for volumetric data in medical and scientific imaging - Active community with 500+ contributors and regular releases ## Comparison with Similar Tools - **OpenCV** — faster C++ backend with broader scope; scikit-image is more Pythonic and research-friendly - **Pillow** — focused on image I/O and basic manipulation; scikit-image provides algorithmic depth - **imgaug** — specialized in augmentation pipelines; scikit-image covers general image processing - **Mahotas** — C++ accelerated computer vision; scikit-image has larger community and documentation ## FAQ **Q: How does scikit-image compare to OpenCV in speed?** A: OpenCV is generally faster for real-time processing. scikit-image prioritizes readability and NumPy integration over raw speed. **Q: Can I process video frames with scikit-image?** A: Yes. Extract frames as NumPy arrays and process them individually. Use `imageio` for video I/O. **Q: Does scikit-image support GPU acceleration?** A: Not directly. Use CuPy arrays with compatible functions or switch to cucim for GPU-accelerated equivalents. **Q: Is scikit-image suitable for deep learning preprocessing?** A: Yes. It is commonly used for preprocessing and augmentation steps before feeding data to PyTorch or TensorFlow. ## Sources - https://github.com/scikit-image/scikit-image - https://scikit-image.org --- Source: https://tokrepo.com/en/workflows/asset-beb65a89 Author: AI Open Source