我正在尝试保存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)
根据文档,通过数组中的传递应该是ndarray,所以我为什么会遇到错误?
刚刚意识到我的图像正在转换为二进制
更换
skimage.io.imsave("medial.png", imgSk)
skimage.io.imsave("medial.png", img_as_uint(imgSk))
为我工作
问题是 png
中的像素类型为uint8。当您应用img_as_bool
时,您会获得布尔数组。这种类型的不匹配会产生错误。
您需要将其转换为uint8
。如建议Alex使用img_as_uint
功能。