如何将cv2.imread与keras image.img_load输出相匹配?

OpenCV以BGR格式读取图像,而在keras中,它以RGB表示。要使OpenCV版本符合我们期望的顺序(RGB),

只需反转通道:

test_image = cv2.imread('some.jpg')
test_image = cv2.resize(test_image, (224, 244))
test_image = test_image[...,::-1] # Added

最后一行将通道反转为RGB顺序。然后,你可以将其提供给你的keras模型。

我想补充的另一点是,cv2.imread通常会在uint8精确地读取图像。检查keras加载图像的输出,你可以看到数据是浮点精度,因此你可能还希望转换为浮点表示,例如float32

import numpy as np
# ...
# ...
test_image = test_image[...,::-1].astype(np.float32)

最后一点,根据你训练模型的方式,通常习惯将图像像素值标准化为一个[0,1]范围。如果你使用keras模型执行此操作,请确保在通过OpenCV读入的图像中将值除以255: 

import numpy as np
# ...
# ...
test_image = (test_image[...,::-1].astype(np.float32)) / 255.0

参考:https://cloud.tencent.com/developer/ask/150710 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Monster_H777

我直说吧:你的奖励我的动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值