3. Getting started#

scikit-image is an image processing Python package that works with numpy arrays. The package is imported as skimage:

>>> import skimage

Most functions of skimage are found within submodules:

>>> from skimage import data
>>> camera = data.camera()

A list of submodules and functions is found on the API reference webpage.

Within scikit-image, images are represented as NumPy arrays, for example 2-D arrays for grayscale 2-D images

>>> type(camera)
<type 'numpy.ndarray'>
>>> # An image with 512 rows and 512 columns
>>> camera.shape
(512, 512)

The skimage.data submodule provides a set of functions returning example images, that can be used to get started quickly on using scikit-image’s functions:

>>> coins = data.coins()
>>> from skimage import filters
>>> threshold_value = filters.threshold_otsu(coins)
>>> threshold_value
107

Of course, it is also possible to load your own images as NumPy arrays from image files, using skimage.io.imread():

>>> import os
>>> filename = os.path.join(skimage.data_dir, 'moon.png')
>>> from skimage import io
>>> moon = io.imread(filename)

Use natsort to load multiple images

>>> import os
>>> from natsort import natsorted, ns
>>> from skimage import io
>>> list_files = os.listdir('.')
>>> list_files
['01.png', '010.png', '0101.png', '0190.png', '02.png']
>>> list_files = natsorted(list_files)
>>> list_files
['01.png', '02.png', '010.png', '0101.png', '0190.png']
>>> image_list = []
>>> for filename in list_files:
...   image_list.append(io.imread(filename))