代码问题为什么图片通过网络后存到文件夹会变成这个颜色,下面是我的代码

img

if __name__ == '__main__':
    # 加载模型
    N = Net()
    N.load_model()
    model = N.model

    # 项目的最终成功:对图片
    classesnum = ['black', 'white']
    num = [0, 0]
    photo = cv2.imread('4.jpg')  # 读取图片数据
    photo = np.array(photo)
    face = face_recognition.face_locations(photo)  # 获取脸部信息
    font = cv2.FONT_ITALIC  # 设置显示字体:斜体
    for (top, right, bottom, left) in face:
        face_image = photo[top:bottom, left:right]
        img = Image.fromarray(face_image)  # 载入到内存中
        img = img.resize((32, 32), Image.ANTIALIAS)  # 图片缩放
        img = np.reshape(img, (-1, 32, 32, 3))  # 加一个维度
        pred = model.predict(img)  # 预测
        print(pred)
        # 返回最大概率值
        classes = pred[0].tolist().index(max(pred[0]))
        # 累计类别数量
        num[classes] = num[classes] + 1
        # 绘制人脸方框
        if classesnum[classes] == 'white':
            imageio.imwrite(save_dir + "/" + ".jpg", photo)
            if classesnum == 'black':
                imageio.imwrite(save_dir2 + "/" + ".jpg", photo)
            else:
                imageio.imwrite(save_dir3 + "/" + ".jpg", photo)
        print(classesnum[classes])
        # 添加计数文字

![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/65670221643619.png "=600 #left")

你的代码不完整,盲猜你用了opencv和pillow(PIL)模块,用opencv读图像,然后中间用pillow做了中间处理和最后写入文件。opencv用的是bgr色彩空间,pillow用的是rgb色彩空间,但是你没有转换,所以原图红色的位置变成了蓝色,反之蓝色变成红色。改进方法有几种: 1.全程用pillow读文件,中间处理,写文件。2.用opencv全程处理。3.如果一定要混用,可以用opencv的cvtColor做一次色彩空间转换。