最近在训练CNN网络,需要对数据进行扩充,于是想做一下图像的镜像翻转,主要参考了博客:
不过我发现博主使用的是opencv老版本了,现在大家都是cv2了,因此我对博主的代码进行了必要的修改。
首先,说明一下,图像的镜像变化不改变图像的形状。图像的镜像变换分为:水平镜像,垂直镜像,对角镜像
下面,简单说一下三种变换的简单公式:假设原图像的大小为H*W,i,j为原始图像第(i,j)元素,I,J为变换后(I,J)元素,则:
水平镜像可按公式:
I = i
J = W - 1 - j
垂直镜像可按公式:
I = H - 1 - i
J = j
对角镜像可按公式:
I = H - 1 - i
J = W -1 - i
就是这么简答,贴下我的代码吧!
'''
函数:DataAugment()
函数功能:扩大数据量
输入参数:dir_path----图片库路径
'''
def DataAugment(dir_path):
if not os.path.exists(dir_path):
print u'路径不存在'
else:
dirs = os.listdir(dir_path)
for subdir in d