kaokoumo 2021-10-19 10:57 采纳率: 50%
浏览 20

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

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")

  • 写回答

1条回答 默认 最新

  • 桔子code 2021-10-19 11:49
    关注

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

    评论

报告相同问题?

问题事件

  • 创建了问题 10月19日

悬赏问题

  • ¥15 stc15f2k60s2单片机关于流水灯,时钟,定时器,矩阵键盘等方面的综合问题
  • ¥15 YOLOv8已有一个初步的检测模型,想利用这个模型对新的图片进行自动标注,生成labellmg可以识别的数据,再手动修改。如何操作?
  • ¥30 NIRfast软件使用指导
  • ¥20 matlab仿真问题,求功率谱密度
  • ¥15 求micropython modbus-RTU 从机的代码或库?
  • ¥15 django5安装失败
  • ¥15 Java与Hbase相关问题
  • ¥15 后缀 crn 游戏文件提取资源
  • ¥20 bash代码推送不上去 git fetch origin master #失败了
  • ¥15 LOL外服加入了反作弊系统,现在游戏录像rofl文件离线都无法打开