3. 開始使用#

scikit-image 是一個影像處理 Python 套件,可與 numpy 陣列搭配使用。此套件匯入時使用 skimage

>>> import skimage as ski

skimage 的大多數函數都位於子模組中

>>> camera = ski.data.camera()

子模組和函數的列表可在API 參考網頁上找到。

在 scikit-image 中,影像會表示為 NumPy 陣列,例如灰階 2D 影像的 2D 陣列

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

skimage.data 子模組提供一組返回範例影像的函數,可用於快速開始使用 scikit-image 的函數

>>> coins = ski.data.coins()
>>> threshold_value = ski.filters.threshold_otsu(coins)
>>> threshold_value
107

當然,也可以使用 skimage.io.imread() 從影像檔案載入您自己的影像作為 NumPy 陣列

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

使用 natsort 載入多個影像

>>> import os
>>> from natsort import natsorted, ns
>>> 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(ski.io.imread(filename))