版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
1 介绍
在训练卷积神经网络的时候,常常需要将原有图像数据集进行一定程度上的扩充,采用的手段主要是图像镜像等方法。本文主要实现了图像的批量水平镜像,垂直镜像,对角镜像功能,希望对你有所帮助!
2 源代码
import cv2 as cv
import os
def image_extend(source_path,save_path):
'''
训练数据增强:水平镜像;垂直镜像;对角镜像
:param source_path:
:param save_path:
:return:
'''
if not os.path.exists(source_path):
return
if not os.path.exists(save_path):
os.makedirs(save_path)
for file in os.listdir(source_path):
img = cv.imread(os.path.join(source_path,file))
xImg = cv.flip(img, 1, dst=None) # 水平镜像
# xImg1 = cv.flip(img,0,dst=None) #垂直镜像
# xImg2 = cv.flip(img,-1,dst=None) #对角镜像
cv.imwrite(os.path.join(save_path,str(file.split('.')[0]) + '_x.' + str(file.split('.')[1])),xImg)
print(file)
if __name__ == '__main__':
image_extend('H:\\0\\train\\2019-10-10-13-5-57-419_gt','H:\\0\\train\\2019-10-10-13-5-57-419_gt')
3 效果展示
水平镜像效果: