遮挡MNIST数据集图片

前言

  博主想修改MNIST图片,进而看一下训练模型的精度是否还会很高,然而在遮挡图片的时候,使用putpixel函数却一直报错,现已解决,记录一下这个问题。

在之前运行过程中,一直提示错误:

 return self.im.putpixel(xy, value)
TypeError: function takes exactly 1 argument (3 given)

翻译一下意思是,给了3个参数但是函数只能提取到一个。

但是由于这个代码之前在flower数据集上已经跑通了,所以博主就很疑惑为什么这里不行,翻看了很多学习资料终于找到了答案。

下图是在flower-daisy下覆盖了一张的图片。

突然间看到了一篇文章说要对图片模式进行转换,才意识到flower数据集是彩色而MNIST数据集是黑白,所以我一直用红色(255,0,0)进行覆盖是不是行不通。

Python图像处理中PIL中image.convert()函数_旅途中的宽~的博客-CSDN博客_image.convert

这篇文章中讲到,MNIST为二值图像,黑为0,白为255.因此,我又把之前的覆盖代码颜色进行了修改。当把红色(255,0,0)改成白色255时,代码瞬间就跑通了!

原来困扰很长时间的问题,竟然是数据集颜色模式问题。

正确代码:

for i in [0,1,2]:
    im1 = Image.open(os.path.join(path, x_names[i]))
    arr = np.array(im1)
    h = arr.shape[0]
    print(h)
    w = arr.shape[1]
    print(w)
    for j in range(0, 20):
        for k in range(0, 20):
            data = im1.getpixel((j, k))  # 得到像素值
            im1.putpixel([j, k],255) 
    count += 1
    print(count)
    im1.save(os.path.join(outdir, '{}.png'.format(count)))

左上角固定位置均被遮挡。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值