我正在使用detecto模型来可视化图像。因此,基本上我将一个图像传递给这个模型,它将绘制一条穿过对象的边界线,并显示可视化的图像。
from keras.preprocessing.image import load_img
from keras.preprocessing.image import save_img
from keras.preprocessing.image import img_to_array
from detecto import core, utils, visualize
image = utils.read_image('retina_model/4.jpg')
model = core.Model()
labels, boxes, scores = model.predict_top(image)
img=visualize.show_labeled_image(image, boxes,)

现在,我正在尝试将这个可视化的图像转换为Numpy数组。我使用下面这行代码将图像转换为numpy数组:
img_array = img_to_array(img)它给出了错误:
Unsupported Image Shape所有我想要的是显示可视化的图像,这是这个模型的输出到我的网站。我们的计划是将图像转换为numpy数组,然后使用以下行通过代码保存图像:
save_img('image1.jpg', img_array)所以我计划下载这个可视化的图像(这个模型的输出),这样我就可以将下载的图像显示到我的网站上。如果有其他方法来实现这一点,那么请让我知道。
发布于 2020-12-13 00:23:54
Detecto的文档显示,utils.read_image()已经返回了一个NumPy数组。
但是你把visualize.show_labeled_image()的返回值传递给了Keras的img_to_array(img)
查看visualize.show_labeled_image(),的Detecto源代码,它没有返回类型,因此默认情况下它返回None。所以我认为你的问题是你没有传递一个有效的图片给img_to_array(img),但是没有。
我认为不需要调用img_to_array(img),因为您已经拥有了作为NumPy数组的图像。但请注意,根据Detecto的文档,utils.read_image()“相当于使用OpenCV的cv2.imread函数并从BGR转换为RGB格式”。确保这是你想要的。
https://stackoverflow.com/questions/65266994
复制相似问题