【数据增强】90°、180°和270°翻转图片(*4)

简介: 【数据增强】90°、180°和270°翻转图片(*4)

前言


       参加了“智蔗见智·向新而生”广西第二届人工智能大赛,但是他给的数据集只有不到100张,对于语义分割模型的训练来说实在是杯水车薪,我们队的处理方案是:先按照十字架方式裁剪图片,之后再进行3个角度的翻转,一系列数据增强的操作了数据集的数量是原来的4*4=16倍,已经可以满足模型的训练要求!而本文正是记录旋转这个数据增强的方式。


记录按十字架裁剪图片方式如下链接:

image.png


效果展示


旋转之前的图片:


旋转之后的图片:


90°


b001cd2dd849a60e17405f7ed5f145b8.jpeg


180°


b001cd2dd849a60e17405f7ed5f145b8.jpeg


270°


dfaf404f84e4f41c22e52d789819ff09.jpeg


成品库

'''
@param:im_path,图片路径,例如:img/test.png
@param:im_name,图片名称,例如:test.png
@param:save_path,保存路径,默认为工作路径
'''


import os
import shutil
from PIL import Image
'''
@param:im_path,图片路径,例如:img/test.png
@param:im_name,图片名称,例如:test.png
@param:save_path,保存路径,默认为工作路径
'''
def strong_dataset(im_path, im_name, save_path=''):
   im = Image.open(im_path)
   part1_im = im.transpose(Image.ROTATE_90)
   part1_im.save(os.path.join(save_path, '90_'+im_name))
   part2_im = im.transpose(Image.ROTATE_180)
   part2_im.save(os.path.join(save_path, '180_'+im_name))
   part3_im = im.transpose(Image.ROTATE_270)
   part3_im.save(os.path.join(save_path, '270_'+im_name))


1.单张图片处理代码:


import os
import shutil
from PIL import Image
def strong_dataset(im_path, im_name, save_path=''):
   im = Image.open(im_path)
   part1_im = im.transpose(Image.ROTATE_90)
   part1_im.save(os.path.join(save_path, '90_'+im_name))
   part2_im = im.transpose(Image.ROTATE_180)
   part2_im.save(os.path.join(save_path, '180_'+im_name))
   part3_im = im.transpose(Image.ROTATE_270)
   part3_im.save(os.path.join(save_path, '270_'+im_name))
if __name__ == "__main__":
    strong_dataset('img/test.png', 'test.png', save_path='img')


2.遍历目录图片代码:



import os
import shutil
from PIL import Image
def strong_dataset(im_path, im_name, save_path=''):
   im = Image.open(im_path)
   part1_im = im.transpose(Image.ROTATE_90)
   part1_im.save(os.path.join(save_path, '90_'+im_name))
   part2_im = im.transpose(Image.ROTATE_180)
   part2_im.save(os.path.join(save_path, '180_'+im_name))
   part3_im = im.transpose(Image.ROTATE_270)
   part3_im.save(os.path.join(save_path, '270_'+im_name))
if __name__ == '__main__':
    # 遍历一个文件夹所有的图片进行旋转,并且保存
    ori_path = r'VOCdevkit\VOC2007\JPEGImages'
    for ori_name in os.listdir(ori_path):
        temp = os.path.join(ori_path, ori_name)
        strong_dataset(temp, ori_name, save_path=ori_path)


3.输出说明


'''
假设:你有这样一张图片 test.png
那么裁剪后将保存为
90_test.png 
180_test.png 
270_test.png 
原图片不会删除!
'''


完毕!


如果大家觉得有用,欢迎三连~  


相关文章
|
10月前
|
数据可视化 PyTorch 算法框架/工具
数据增强之裁剪、翻转与旋转
数据增强之裁剪、翻转与旋转
89 0
数据增强之裁剪、翻转与旋转
|
计算机视觉
第三周作业:matlab将一张图片进行顺时针旋转 20°,做水平镜像,做错切变换,缩小图像处理,并采用双线性插值方法
简介:第三周作业:matlab将一张图片进行顺时针旋转 20°,做水平镜像,做错切变换,缩小图像处理,并采用双线性插值方法
第三周作业:matlab将一张图片进行顺时针旋转 20°,做水平镜像,做错切变换,缩小图像处理,并采用双线性插值方法
|
自然语言处理 JavaScript 前端开发
【计算机图形学】六面体旋转并实时切换虚线实线 - 代码实现
【计算机图形学】六面体旋转并实时切换虚线实线 - 代码实现
790 0
【计算机图形学】六面体旋转并实时切换虚线实线 - 代码实现
|
图形学
Unity 之 获取物体的旋转角正确数值
不管父物体如何设置,都能获取到物体本身旋转角度的正确数值
933 0
|
机器学习/深度学习
AC Leetcode 48. 旋转图像
AC Leetcode 48. 旋转图像
107 0
AC Leetcode 48. 旋转图像
图片旋转 (30 分)(模拟)
图片旋转 (30 分)(模拟)
61 0
数据增强 | 旋转、平移、缩放、错切、HSV增强
数据增强 | 旋转、平移、缩放、错切、HSV增强
232 0
数据增强 | 旋转、平移、缩放、错切、HSV增强
第五周作业:利用matlab将图片依次进行,平移、镜像、旋转、0.5 倍缩小,然后分别将变换后的图像进行二维傅里叶变换。
简介:第五周作业:利用matlab将图片依次进行,平移、镜像、旋转、0.5 倍缩小,然后分别将变换后的图像进行二维傅里叶变换。
第五周作业:利用matlab将图片依次进行,平移、镜像、旋转、0.5 倍缩小,然后分别将变换后的图像进行二维傅里叶变换。