img = cv2.imdecode(np.fromfile(img_path, dtype=np.uint8), -1) # 读入完整图片,见下面解释

img = cv2.imdecode(np.fromfile(img_path, dtype=np.uint8), 0) # 读成灰度

img = cv2.imdecode(np.fromfile(img_path, dtype=np.uint8), 1) # 读成彩图

其中cv2.imdecode后面的flag -1应该是和cv2.imread一样的。

使用函数cv2.imread(filepath, flags)读入一幅图片:

filepath: 要读入图片的路径。

flags: 读入图片的标志:

cv2.IMREAD_UNCHANGED(-1): 顾名思义,读入完整图片,包括alpha通道。如果数据不含alpha通道则灰图读成(H, W),彩图读成(H, W, 3)。

cv2.IMREAD_GRAYSCALE(0): 读入灰度图片,形状为(H, W)。彩图也读成灰的形状。

cv2.IMREAD_COLOR(1): 默认参数, 读入一幅彩色图片,忽略alpha通道, 形状为(H, W, 3)。灰图也读成彩的形状。

有alpha通道的图片还没试验,不过看来读成-1比较稳妥。

参考:

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐