Я впервые использую scikit-Image для использования на хакатоне в эти выходные.Выполняя некоторые тесты, я обнаружил, что API работает очень медленно, несмотря на то, что в нижней части страница говорит, что время их выполнения скрипта составило 4,780 секунды.Каждый раз, когда я запускаю мой, это занимает более 20 минут.
Их пример кода не работал для меня, так как я не мог заставить работать matplotlib.Я пытался адаптировать его и использовал PIL для сохранения моих изображений
import numpy as np
from PIL import Image
from skimage import data, img_as_float, img_as_ubyte
from skimage.segmentation import (morphological_chan_vese,
morphological_geodesic_active_contour, inverse_gaussian_gradient,
checkerboard_level_set)
def store_evolution_in(lst):
"""Returns a callback function to store the evolution of the
level sets in
the given list.
"""
def _store(x):
lst.append(np.copy(x))
return _store
imarray = np.asarray(Image.open("./images/bottle.jpg"))
# Morphological ACWE
image = img_as_float(imarray)
# Initial level set
init_ls = checkerboard_level_set(image.shape, 6)
# List with intermediate results for plotting the evolution
evolution = []
callback = store_evolution_in(evolution)
gimage = inverse_gaussian_gradient(image)
ls = morphological_geodesic_active_contour(gimage, 100, init_ls,
smoothing=1, balloon=-1,
threshold=0.69,
iter_callback=callback)
intls = img_as_ubyte(ls)
Image.fromarray(intls).save('./results/ls.jpg', 'JPEG')
Я надеюсь вернуть сегментированное изображение, как в результатах (конечная цель - получить только темную жидкостьв бутылке осталось).Но время выполнения не только намного дольше, чем у них, оно возвращает только черное изображение.Может я что-то не так делаю?
Мой Activity Monitor говорит, что Python потребляет 100% мощности процессора, но загрузка процессора внизу говорит, что пользователь потребляет 9%, поэтому я могу предположить, что не все мои ядраиспользуются.