今天在进行深度学习训练的过程中,我使用
img = cv.imread(img_path, cv.IMREAD_UNCHANGED)
来读取图片进行相关的模型训练工作,但是在运行的过程中总是会遇到如下错误:
ValueError: operands could not be broadcast together with shapes (512,512,4) (3,) (512,512,4)
可以看出错误的原因就是我的图片通道数是4,一开始我比较疑惑,我们图片明明是RGB的3通道图像,但是为什么总是显示是4通道呢?
最后经过搜索发现:PNG格式的图像是比JPG格式的图像多了一个Alpha通道,而我们上面的图片的读取过程中,使用了cv.IMREAD_UNCHANGED,即指定了读取的时候包含Alpha通道,所以才会出现上面的错误,随后我将cv.IMREAD_UNCHANGED删除,即
img = cv.imread(img_path)
即可解决上述问题。