gpt4 book ai didi

opencv - opencv 和 PIL 的差异影响模型预测

转载 作者:行者123 更新时间:2023-12-02 16:48:26 24 4
gpt4 key购买 nike

我已经在 Keras 中训练了一个用于图像分类的模型。训练是通过使用枕头加载图像来进行的。在部署过程中,图像会加载到 opencv 中,这会大大降低模型的准确性。我发现pillow和opencv加载的图像显示时不一样。

im = Image.open("cat.jpg")
plt.imshow(im)
plt.show()

enter image description here

img = cv2.imread('cat.jpg')
plt.imshow(img)
plt.show()

enter image description here

为了解决这个问题,我尝试在 opencv 中加载图像并将其写入临时文件并将其加载到枕头中。

cv2.imwrite('cat2.jpg',img)
im1 = Image.open("cat2.jpg")
im == im1

输出

False

我尝试将 im1im 打印为数组,并且值完全不同。我必须在部署中使用opencv。无论如何,我可以保持模型的准确性吗?

最佳答案

这是OpenCV和PIL中 channel 顺序差异的问题。 PIL 将图像加载为 RGB,而 OpenCV 加载为 BGR。因此,当您使用 matplotlib 显示图像时,蓝色和红色 channel 似乎交换了。

您可以使用cv2.cvtColor函数将OpenCV图像转换为RGB,如下所示:

img = cv2.imread('cat.jpg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(img)
plt.show()

关于opencv - opencv 和 PIL 的差异影响模型预测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56006153/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com