Scikit-image

scikit-image — свободная кроссплатформенная библиотека для обработки изображений на языке Python. Она построена на массивах NumPy и интегрируется с научной экосистемой Python, предоставляя хорошо документированные реализации распространённых алгоритмов анализа изображений. Проект развивается глобальным сообществом добровольцев при организационной поддержке NumFOCUS[1]. Текущий стабильный релиз — 0.23.0, выпущенный 24 апреля 2024 года[2].

Что важно знать
scikit-image
Тип Библиотека обработки изображений
Разработчик Сообщество контрибьюторов (поддерживается NumFOCUS)
Написана на Python, Cython и C
Интерфейс Python API
Операционная система Кроссплатформенная
Первый выпуск 0.1
Последняя версия 0.23.0 (24 апреля 2024)
Состояние Активно разрабатывается и обновляется
Лицензия Бесплатное программное обеспечение с открытым исходным кодом (модифицированная лицензия BSD)
Сайт scikit-image.org

Функции

Библиотека охватывает полный цикл научной обработки изображений и включает следующие возможности:

  • чтение и запись изображений в различных форматах[3]
  • преобразование между цветовыми пространствами и работа с многоканальными N-мерными данными[4]
  • предварительная обработка и улучшение качества снимков при помощи локальных и нелокальных фильтров[5]
  • математическая морфология для изменения формы и структуры объектов[6]
  • сегментация изображений (бинарная, маркерная, пороговая) для выделения смысловых областей[7]
  • измерение свойств регионов (площадь, периметр, ориентация и т. д.)[8]
  • извлечение признаков (форма, текстура, ключевые точки) для задач компьютерного зрения[9]
  • геометрические преобразования (масштабирование, поворот, проекция)[10]
  • фильтрация и восстановление изображений, включая подавление шума и повышение резкости[11]
  • управление экспозицией, коррекцией гистограммы и цветовыми каналами (RGB ↔ HSV, оттенки серого)[12]
  • интерактивная визуализация данных и тесная интеграция с Matplotlib[13]

Примеры использования

Ниже приведены типичные приёмы работы с библиотекой.

  • Чтение и отображение изображения
from skimage import io
image = io.imread('path/to/image.jpg')
io.imshow(image)

В сочетании с matplotlib.pyplot.show() код загружает файл в виде массива NumPy и выводит его на экран[14].
  • Бинарная сегментация методом Отсу
from skimage.filters import threshold_otsu
gray = io.imread('path/to/image.jpg', as_gray=True)
thr = threshold_otsu(gray)
mask = gray > thr

Автоматический порог выделяет объект на фоне; метод широко используется для подготовки изображений к анализу.
  • Обнаружение краёв по Канни
from skimage.feature import canny
edges = canny(gray, sigma=3)

Алгоритм Канни выявляет границы объектов, подавляя шум гауссовым сглаживанием и применяя гистерезисную пороговую обработку[15].

Примечания

© Правообладателем данного материала является АНО «Интернет-энциклопедия «РУВИКИ».
Использование данного материала на других сайтах возможно только с согласия АНО «Интернет-энциклопедия «РУВИКИ».