我是靠谱客的博主 俊秀酒窝,最近开发中收集的这篇文章主要介绍Pytorch图像noise,blur增强前言二、使用步骤总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前言

pytorch中的transform没有加噪声和模糊的数据增强方法。结合网上现有的代码整合了一个小工具

二、使用步骤

1.引入库

代码如下(示例):

import numpy as np
import random
from PIL import Image,ImageFilter

2.代码

代码如下(示例):

#添加椒盐噪声
class AddSaltPepperNoise(object):
def __init__(self, density=0,p=0.5):
self.density = density
self.p = p
def __call__(self, img):
if random.uniform(0, 1) < self.p:
# 概率的判断
img = np.array(img)
# 图片转numpy
h, w, c = img.shape
Nd = self.density
Sd = 1 - Nd
mask = np.random.choice((0, 1, 2), size=(h, w, 1), p=[Nd / 2.0, Nd / 2.0, Sd])
# 生成一个通道的mask
mask = np.repeat(mask, c, axis=2)
# 在通道的维度复制,生成彩色的mask
img[mask == 0] = 0
# 椒
img[mask == 1] = 255
# 盐
img = Image.fromarray(img.astype('uint8')).convert('RGB')
# numpy转图片
return img
else:
return img
#添加Gaussian噪声
class AddGaussianNoise(object):
'''
mean:均值
variance:方差
amplitude:幅值
'''
def __init__(self, mean=0.0, variance=1.0, amplitude=1.0):
self.mean = mean
self.variance = variance
self.amplitude = amplitude
def __call__(self, img):
img = np.array(img)
h, w, c = img.shape
N = self.amplitude * np.random.normal(loc=self.mean, scale=self.variance, size=(h, w, 1))
N = np.repeat(N, c, axis=2)
img = N + img
img[img > 255] = 255
# 避免有值超过255而反转
img = Image.fromarray(img.astype('uint8')).convert('RGB')
return img
#添加模糊
class Addblur(object):
def __init__(self, p=0.5,blur="normal"):
#
self.density = density
self.p = p
self.blur= blur
def __call__(self, img):
if random.uniform(0, 1) < self.p:
# 概率的判断
#标准模糊
if self.blur== "normal":
img = img.filter(ImageFilter.BLUR)
return img
#高斯模糊
if self.blur== "Gaussian":
img = img.filter(ImageFilter.GaussianBlur)
return img
#均值模糊
if self.blur== "mean":
img = img.filter(ImageFilter.BoxBlur)
return img
else:
return img

3.食用方法

transform = transforms.Compose([
Addblur(p=1,blur="Gaussian"),
#注意要加这两个东西
transforms.ToTensor(),
transforms.ToPILImage(),
AddSaltPepperNoise(0.05,1),
transforms.ToTensor(),
transforms.RandomVerticalFlip(),
])

总结

直接加到里面就可以使用啦

最后

以上就是俊秀酒窝为你收集整理的Pytorch图像noise,blur增强前言二、使用步骤总结的全部内容,希望文章能够帮你解决Pytorch图像noise,blur增强前言二、使用步骤总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(99)

评论列表共有 0 条评论

立即
投稿
返回
顶部