ValueError: Image is not numeric, but ndarray

ValueError: Image is not numeric, but ndarray

我正在尝试保存 sci-kit 图像,但出现错误:

ValueError:图像不是数字,而是 ndarray。

代码:

from skimage import *
import skimage.io
import skimage.morphology as morphology

def loadImage(f):
    return skimage.img_as_float(skimage.io.imread(f))

img = img_as_bool(loadImage("images/metric_map_processed.PNG"))

imgSk = morphology.medial_axis(img)
skimage.io.imsave("medial.png", imgSk)

根据docs,传入的数组应该是ndarray,为什么会报错?

刚刚意识到我的图像正在被转换为二进制

正在替换

skimage.io.imsave("medial.png", imgSk)

skimage.io.imsave("medial.png", img_as_uint(imgSk))

对我有用

问题是 png 中的像素类型是 uint8。当您应用 img_as_bool 时,您会得到布尔数组。这种类型不匹配会产生错误。

您需要将其转换为 uint8。正如亚历克斯所建议的那样,使用 img_as_uint 函数。