图片的增强之-裁剪、旋转、放缩

一、图片增强

当我们训练深度学习模型的时候,你的图片数据集可能数量太少或者是有的类别数量过少,你就可以通过对图片进行裁剪、旋转和放缩来完成图片数量的扩充。PS:参考的那篇文章找不到链接了,实在不好意思,无法给那位作者引流。如有读者发现,可以在下边留言。

二、图片裁剪

# -*- coding: utf-8 -*-
"""
Created on Sun May  8 10:13:57 2022
图片裁剪
@author: Lcy
"""
from PIL import Image
def cropimg(inputimg,outimg):
     im = Image.open(inputimg)
     # 图片的宽度和高度
     img_size = im.size
     print("图片宽度和高度分别是{}".format(img_size))
     '''
     裁剪:传入一个元组作为参数
     元组里的元素分别是:(距离图片左边界距离x, 距离图片上边界距离y,距离图片左边界距离+裁剪框宽度x+w,距离图片上边界距离+裁剪框高度y+h)
     '''
     # 截取图片中一块宽和高都是250的
     x = 0
     y = 10
     w = 600
     h = 300
     region = im.crop((x, y, x + w, y + h))
     region.save(outimg)
 
if __name__ == "__main__":
     inputpath = "C:/Users/Lcy/data/train/processing/label2/"
     outpath = "C:/Users/Lcy/data/train/processing/croplabel1/"
     for i in range(1, 800):
         tmpin = inputpath+'T'+str(i)+'.jpg'
         tmpout = outpath+'TC'+str(i)+'.jpg'
         cropimg(tmpin, tmpout)
         print('成功裁剪第' + str(i) + '张图片')

三、图片放缩

# -*- coding: utf-8 -*-
"""
Created on Sun May  8 10:04:18 2022
图片放缩
@author: Lcy
"""
# -*-coding:utf-8-*-
from PIL import Image
import random
def resizeimg(inputimg,outimg):
     img1 = Image.open(inputimg)
     ronum1 = random.randint(200, 600)
     ronum2 = random.randint(100, 400)
     out=img1.resize((ronum1, ronum2),Image.ANTIALIAS)
     print("图片宽度和高度分别是{}".format(out.size))
     out.save(outimg)
     
if __name__ == "__main__":
     #
     inputpath = "C:/Users/Lcy/data/train/processing/label2/"
     outpath = "C:/Users/Lcy/data/train/processing/resizelabel1/"
     for i in range(1, 800):
         tmpin = inputpath+'T'+str(i)+'.jpg'
         tmpout = outpath+'Ts'+str(i)+'.jpg'
         resizeimg(tmpin, tmpout)
         print('成功放缩第' + str(i) + '张图片')

四、图片旋转

# -*- coding: utf-8 -*-
"""
Created on Sun May  8 09:52:33 2022
图片旋转
@author: Lcy
"""
from PIL import Image
import random
def rotateimg(inputimg,outimg):
     im = Image.open(inputimg)
     # 图片的宽度和高度
     img_size = im.size
     print("图片宽度和高度分别是{}".format(img_size))
     # 旋转图片
     # 左旋转90度
     ronum = random.uniform(0, 360)
     im = im.rotate(ronum)
     print("图片宽度和高度分别是{}".format(im.size))
     im.save(outimg)
if __name__ == "__main__":
     #
     inputpath = "C:/Users/Lcy/data/train/processing/label2/"
     outpath = "C:/Users/Lcy/data/train/processing/rotatelabel1/"
     for i in range(1,800):
         tmpin = inputpath+'T'+str(i)+'.jpg'
         tmpout = outpath+'Tr'+str(i)+'.jpg'
         rotateimg(tmpin, tmpout)
         print('成功旋转第'+str(i)+'张图片')
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值