数据增强处理(图像平移,缩放,翻转,旋转,加噪,亮度调节)
数据增强处理图像的平移,缩放,翻转,旋转,加噪,亮度调节# -*- coding: utf-8 -*- # 数据增强实现 importcv2importnumpyasnp# 图像平移defimg_translation(image):# 图像平移 下、上、右、左平移Mnp.float32([[1,0,0],[0,1,100]])img_downcv2.warpAffine(image,M,(image.shape[1],image.shape[0]))Mnp.float32([[1,0,0],[0,1,-100]])img_upcv2.warpAffine(image,M,(image.shape[1],image.shape[0]))Mnp.float32([[1,0,100],[0,1,0]])img_rightcv2.warpAffine(image,M,(image.shape[1],image.shape[0]))Mnp.float32([[1,0,-100],[0,1,0]])img_leftcv2.warpAffine(image,M,(image.shape[1],image.shape[0]))# 显示图形cv2.imshow(down,img_down)cv2.imshow(up,img_up)cv2.imshow(right,img_right)cv2.imshow(left,img_left)# 图像缩放defimg_scale(image):resultcv2.resize(image,(200,100))cv2.imshow(scale,result)# 图像翻转defimg_flip(image):# 0以X轴为对称轴翻转,0以Y轴为对称轴翻转, 0X轴Y轴翻转horizontallycv2.flip(image,0)# 水平镜像verticallycv2.flip(image,1)# 垂直镜像hvcv2.flip(image,-1)# 水平垂直镜像# 显示图形cv2.imshow(Horizontally,horizontally)cv2.imshow(Vertically,vertically)cv2.imshow(Horizontally Vertically,hv)# 图像旋转defimg_rotation(image):# 原图的高、宽 以及通道数rows,cols,channelimage.shape# 绕图像的中心旋转# 参数旋转中心 旋转度数 scaleMcv2.getRotationMatrix2D((cols/2,rows/2),30,1)# 参数原始图像 旋转参数 元素图像宽高rotatedcv2.warpAffine(image,M,(cols,rows))# 显示图像cv2.imshow(rotated,rotated)# 图像加噪defimg_noise(image,mean0,var0.001): 添加高斯噪声 mean : 均值 var : 方差 imagenp.array(image/255,dtypefloat)noisenp.random.normal(mean,var**0.5,image.shape)outimagenoiseifout.min()0:low_clip-1.else:low_clip0.outnp.clip(out,low_clip,1.0)outnp.uint8(out*255)cv2.imshow(noise,out)# 图像亮度调节defimg_brightness(image):contrast1# 对比度brightness100# 亮度pic_turncv2.addWeighted(image,contrast,image,0,brightness)# cv2.addWeighted(对象,对比度,对象,对比度)cv2.addWeighted()实现的是图像透明度的改变与图像的叠加cv2.imshow(bright,pic_turn)# 显示图片if__name____main__:# src cv2.imread(./images/jie1.jpg)srccv2.imread(./images/luowen.jpg)img_translation(src)img_scale(src)img_flip(src)img_rotation(src)img_noise(src)img_brightness(src)cv2.waitKey(0)cv2.destroyAllWindows()