用Python做图片分类:前置处理,图片的缩小保存

 

 

实现目标:批量的缩小图片

如果要训练一个自己的图片分类神经网络那么就很必要自己来训练一个神经网络,我们需要三个文件夹,一个是训练集,一个是测试集,一个是验证集

训练集:所有有效图片的8成

测试集:所有有效图片的100%

验证集:只含有20%左右的有效图片,其他是无关图片

 

因为运算量的限制所以必须要先缩小图片


实现步骤


# 1.读取图片
# 2.缩小图片到64*64,减少运算量
# 3.转换图片为RGB(如果是PNG图片)
# 4.保存为jpg格式



from PIL import ImageFilter
from PIL import Image
import cv2                
import os

target = r'C:\Users\wzx13\Documents\code\缩小图片'
testtarget = r'C:\Users\wzx13\Documents\code\训练图片'
outpath = r'C:\Users\wzx13\Documents\code\缩小图片jpg'

# 文件夹操作

files = os.listdir(testtarget)
os.chdir(testtarget)

#如果没有这个文件夹的话,那就新建个文件夹
if(not os.path.exists(outpath)):
    os.makedirs(outpath)

# 在读取到的文件夹下面对每个文件进行处理
for file in files:
    if(os.path.isfile(file)):
        img = Image.open(file)
        print(file)
        img = img.resize((64,64),Image.ANTIALIAS)
        if img.mode != 'RGB':
           img = img.convert("RGB")
        img.save(os.path.join(outpath,"r"+file+".jpg"))


 

后面我又做了一下猫狗图片划分,写成了函数,更实用

 

from PIL import ImageFilter
from PIL import Image
import cv2
import os

re_x = 64
re_y = 64
inputpath = r'D:\dogs-vs-cats\train\train'
outpath_dog = r'C:\Users\wzx13\Documents\CatCheck\train\class1'
outpath_cat = r'C:\Users\wzx13\Documents\CatCheck\train\class2'


def resizeFun(input,diffstr, output1,output2):
    files = os.listdir(input)
    os.chdir(input)

    # 如果没有这个文件夹的话,那就新建个文件夹
    if(not os.path.exists(output1)):
        os.makedirs(output1)
    if(not os.path.exists(output2)):
        os.makedirs(output2)
    i = 0
    for file in files:
        if(os.path.isfile(file)):
            img = Image.open(file)
            print(file)
            img = img.resize((re_x, re_x), Image.ANTIALIAS)
            if img.mode != 'RGB':
                img = img.convert("RGB")
            if(file.split('.')[0] != "dog"):
                img.save(os.path.join(output2, str(i)+".jpg"))
            else:
                img.save(os.path.join(output1, str(i)+".jpg"))
            i += 1
    return

#文件名,区分词,输出区分词对应文件夹,输出区分词不对应的文件夹
resizeFun(inputpath, "dog",outpath_dog,outpath_cat)

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值