用cv2显示unet预测图像

2024-06-28 15:07:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我用图像和遮罩训练了一个模型,并预测了一幅图像。 我预测的图像形状是(1024,1024,3)

代码

nueva_imagen = cv2.imread("../input/dataset/Training_dataset/Images/all_imgs/zanzibar_4_35_04.jpg")
print(nueva_imagen.shape)
nueva_imagen = cv2.resize(nueva_imagen,(256,256))
nueva_imagen = np.expand_dims(nueva_imagen,axis=0)
print(nueva_imagen.shape)
pred_img = model.predict(nueva_imagen)
print(pred_img.shape)
#pred_img = np.squeeze(pred_img,axis=0)
#print(pred_img.shape)

我之所以添加另一个维度,是因为我的模型只拍摄三维图像。 最后我预测的图像形状是(1,256,256,1) 现在阅读cv2文件,我不能显示4维图像,所以这里是我所做的

image_to_predict = _images[789]
mask_of_image = masks_arr[789]



pred_img = np.squeeze(pred_img,axis=0)
pred_img = np.squeeze(pred_img,axis=2)



fig = plt.figure()
fig.subplots_adjust(hspace=0.4, wspace=0.4)
ax = fig.add_subplot(1, 2, 1);plt.title("original image")
ax.imshow(image_to_predict)

#ax = fig.add_subplot(1, 2, 2);plt.title("mask")
#ax.imshow(mask_of_image)

ax = fig.add_subplot(1,2,2);plt.title("Predicted image")
ax.imshow(pred_img)

我删除了轴0和3的尺寸,以显示图像,但我得到的是一个紫色的图像。 这是预测的图像还是我做错了什么


Tags: 图像imageimgnpfigpltaxcv2
1条回答
网友
1楼 · 发布于 2024-06-28 15:07:20

您可能希望执行的一些检查(如果不访问模型,则很难说);图像):

  • 使用OpenCV加载图像时,图像存储为BGR而不是RGB。如果您在加载OpenCV的图像上训练模型,这应该不是问题。但是,如果在目录上使用fit方法,则可能需要使用cv2.cvtColor(nueva_imagen, cv2.COLOR_BGR2RGB)将BGR转换为RGB
  • 确保图像预处理在训练和预测之间是相同的。通常,检查它们是否都有[0,1](作为float)或[0,255](作为int)中的值
  • 对于[0,1]值使用Matplotlib时也是如此

相关问题 更多 >