常见数据增强方法

 1.尺寸放大缩小

def Scale(image,scale):
    return  cv2.resize(image,None,fx=scale,fy=scale,interpolation=cv2.INTER_LINEAR)



path="test/1.jpg"

img=cv2.imread(path)

cv2.imshow("old_img",img)#第一个参数表示展示出来图片的标题,第二个参数就是展示的图片

cv2.waitkey(0)

new_img=Scale(img,0.5)

cv2.imshow("new_img",new_img)

cv2.waitkey(0)

2.水平翻转和垂直翻转

#水平镜像
def Horizontal(image):
    return  cv2.resize(image,1,dst=None)

#垂直翻转
def Vertical(image):
    return  cv2.flip(image,0,dst=None)



path="test/1.jpg"

img=cv2.imread(path)

cv2.imshow("old_img",img)#第一个参数表示展示出来图片的标题,第二个参数就是展示的图片

cv2.waitkey(0)

new_img=Horizontal(img)

cv2.imshow("new_img",new_img)

cv2.waitkey(0)

3.旋转图片

#旋转,第一个参数是旋转角度(默认旋转15度),第二个参数表示旋转过程中还可以放大缩小
def  Rotate(image,angle=15,scale=0.9):
     w=image.shape[1]
     h=image.shape[0]

     M=cv2.getRotationMatrix2D((w/2,h/2),angle,scale)

     image=cv2.warpAffine(image,M,(w,h))

     return  image





path="test/1.jpg"

img=cv2.imread(path)

cv2.imshow("old_img",img)#第一个参数表示展示出来图片的标题,第二个参数就是展示的图片

cv2.waitkey(0)

new_img=Rotate(img,90,1)

cv2.imshow("new_img",new_img)

cv2.waitkey(0)

4.调节明暗度

#变暗
def  Darker(image,percetage=0.9):
     image_copy=image.copy()
     w=image.shape[1]
     h=image.shape[0]
     
     for xi in  range(0,w):
         for  xj  in range(0,h):
              image_copy[xj,xi,0]=int(image[xj,xi,0]*percetage)
              image_copy[xj,xi,1]=int(image[xj,xi,1]*percetage)
              image_copy[xj,xi,2]=int(image[xj,xi,2]*percetage) 

     return  image_copy

#垂直翻转
def Vertical(image):
    return  cv2.flip(image,0,dst=None)



path="test/1.jpg"

img=cv2.imread(path)

cv2.imshow("old_img",img)#第一个参数表示展示出来图片的标题,第二个参数就是展示的图片

cv2.waitkey(0)

new_img=Darker(img)

cv2.imshow("new_img",new_img)

cv2.waitkey(0)
#变亮
def  Brighter(image,percetage=1.1):
     image_copy=image.copy()
     w=image.shape[1]
     h=image.shape[0]
     
     for xi in  range(0,w):
         for  xj  in range(0,h):
             image_copy[xj,xi,0]=np.clip(int(image[xj,xi,0]*percetage),a_max=255,a_min=0)
             image_copy[xj,xi,1]=np.clip(int(image[xj,xi,1]*percetage),a_max=255,a_min=0)
             image_copy[xj,xi,2]=np.clip(int(image[xj,xi,2]*percetage),a_max=255,a_min=0)
     return  image_copy

#垂直翻转
def Vertical(image):
    return  cv2.flip(image,0,dst=None)



path="test/1.jpg"

img=cv2.imread(path)

cv2.imshow("old_img",img)#第一个参数表示展示出来图片的标题,第二个参数就是展示的图片

cv2.waitkey(0)

new_img=Brighter(img)

cv2.imshow("new_img",new_img)

cv2.waitkey(0)

进行数据增强之后,还要将图片保存下来:

img_path="test"
save_path=img_path

txts=os.listdir(img_path)

for  txt in  txts:
      image_path=os.path.join(img_path+txt)
      image=cv2.imread(image_path)
     
      image_scale=Scale(image,1.5)  
      new_image_path=os.path.join(save_path,txt.replace(".jpg","_scale.jpg"))
      cv2.imwrite(new_image_path,image_scale)

      image_rotate=Rotate(image,90,1)
      new_image_path=os.path.join(save_path,txt.replace(".jpg","_rotate.jpg"))
      cv2.imwrite(new_image_path,image_rotate)

      ..........
     

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值