SKImage运行非常缓慢并输出意外结果

时间:2019-01-25 21:56:08

标签: python image-processing scikit-image

本周末,我第一次在hackathon中使用scikit-Image。在进行一些测试时,我发现api运行非常缓慢,尽管the page的底部说其脚本运行时间为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')

我希望像他们的结果一样获得分段的图像(最终目标是只保留瓶中的深色液体)。但是,不仅运行时比其运行时长得多,而且它仅返回黑色图像。也许我做错了什么?

我的活动监视器说Python消耗了100%的CPU功率,但底部的CPU负载却表明用户消耗了9%的CPU,因此我只能假设并非所有内核都在使用。

0 个答案:

没有答案