当前位置:   article > 正文

ValueError: operands could not be broadcast together with shapes (416,416,4) (3,)

operands could not be broadcast together with shapes (416,416,4) (415,415,4)

1.问题描述

深度学习训练、读取图片时,遇到下面问题

ValueError: operands could not be broadcast together with shapes (416,416,4) (3,)
  • 1

2.原因分析

一般是读三通道的图片,即RGB图片,而根据报错情况,可以看到图片是四通道,此外还有灰度图是单通道也会类似情况。

3.处理方法

3.1 直接跳过非三通道图片
for img in imgs:
        img = os.path.join(root, img)
        img=cv2.imread(img)
        img=cv2.resize(img,(416,416))
        if img.shape[2] != 3:
            continue
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
3.2 将非三通道图片转为三通道图片
from PIL import Image
if im.shape[2] == 4:
  im = Image.open(im_path).convert("RGB")

  • 1
  • 2
  • 3
  • 4

4.四通道相关知识

在图像处理中,真彩位图文件的每个通道都定义为 8 位,可以提供 256 个级别的强度。因此,一个 RGB 文件是 24 位的,具有 256 个级别(都带有红、绿和蓝)。而RGBA 文件(红、绿、蓝、alpha)是 32 位的,具有额外的 8 位

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/948377
推荐阅读
相关标签
  

闽ICP备14008679号