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
函数。
我正在尝试保存 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
函数。