Загрузить пользовательское изображение из файловой системы в scikit-image

Я новичок в Python, и я пытаюсь сделать учебник, показанный на официальной странице. Моя цель состоит в том, чтобы проанализировать созданную мной картину с использованием метода Local Otsu Threshold.

Код с примером изображения работает нормально, но я хочу прочитать пользовательское изображение, которое хранится в том же каталоге, что и *.py-файл.

Это код:

from skimage import data
from skimage.morphology import disk
from skimage.filters import threshold_otsu, rank
from skimage.util import img_as_ubyte

import matplotlib
import matplotlib.pyplot as plt

matplotlib.rcParams['font.size'] = 9
img = img_as_ubyte(data.page())

radius = 15
selem = disk(radius)

local_otsu = rank.otsu(img, selem)
threshold_global_otsu = threshold_otsu(img)
global_otsu = img >= threshold_global_otsu

fig, ax = plt.subplots(2, 2, figsize=(8, 5), sharex=True, sharey=True,
                       subplot_kw={'adjustable': 'box-forced'})
ax0, ax1, ax2, ax3 = ax.ravel()

fig.colorbar(ax0.imshow(img, cmap=plt.cm.gray),
             ax=ax0, orientation='horizontal')
ax0.set_title('Original')
ax0.axis('off')

fig.colorbar(ax1.imshow(local_otsu, cmap=plt.cm.gray),
             ax=ax1, orientation='horizontal')
ax1.set_title('Local Otsu (radius=%d)' % radius)
ax1.axis('off')

ax2.imshow(img >= local_otsu, cmap=plt.cm.gray)
ax2.set_title('Original >= Local Otsu' % threshold_global_otsu)
ax2.axis('off')

ax3.imshow(global_otsu, cmap=plt.cm.gray)
ax3.set_title('Global Otsu (threshold = %d)' % threshold_global_otsu)
ax3.axis('off')

plt.show()

Более конкретно я хочу загрузить свое изображение example.jpg вместо

img = img_as_ubyte(data.page())

Как я могу это сделать?

2 ответа

Решение

Используйте функцию io.imread

img = io.imread('/path/to/example.jpg')

Загрузите изображение, используя библиотеку skimage.

Если не установлено: pip install -U scikit-image

Загрузить изображение:

    from skimage import io
    img = io.imread('file_path')
Другие вопросы по тегам