一、调整图片亮度
运用函数:
f(x)= contrast * g(x) + brightness
并与for循环函数嵌套使用将图片分成三层,达到对图片每一个“点”进行遍历的效果
for i in range(pic.shape[0]):
for j in range(pic.shape[1]):
for k in range(pic.shape[2]):
if (pic[i][j][k] * contrast+ brightness<=255):
pic[i][j][k] = pic[i][j][k] * contrast+ brightness
else:
pic[i][j][k] = 255
其中,contrast(对比度)与brightness(亮度)的值可以自己设定以达到不同的效果。
二、在图片中插入噪点
for i in range(1000):
pic[random.randint(0, pic.shape[0]-1)][random.randint(0,pic.shape[1]-1)][:]=255
运用该函数可以在图片中随机插入噪点
三、高斯模糊
cv2.GaussianBlur()函数
output = cv2.GaussianBlur(img, (5, 5), 1.5)
- img:为要进行操作的图片
- (5,5):指高斯矩阵的尺寸
- 1.5:指标准差(越大越模糊)
四、中值滤波
cv2.medianBlur()函数
output = cv2.medianBlur(img, n)
- img:为要进行操作的图片
- n:对像素的中心值及其n*n邻域组成了一个数值集,对其进行处理计算,当前像素被其中值替换掉。
五、在原有图片基础上通过随机变换生成新的图片,以拓展图片资源
keras.preprocessing.image.ImageDataGenerator(featurewise_center=False,
samplewise_center=False,
featurewise_std_normalization=False,
samplewise_std_normalization=False,
zca_whitening=False,
zca_epsilon=1e-6,
rotation_range=0.,
width_shift_range=0.,
height_shift_range=0.,
shear_range=0.,
zoom_range=0.,
channel_shift_range=0.,
fill_mode='nearest',
cval=0.,
horizontal_flip=False,
vertical_flip=False,
rescale=None,
preprocessing_function=None,
data_format=K.image_data_format())
参数解析:
详情可见:keras图片预处理
- featurewise_center:
布尔值,使输入数据集去中心化(均值为0), 按feature执行 - samplewise_center:
布尔值,使输入数据的每个样本均值为0 - featurewise_std_normalization:
布尔值,将输入除以数据集的标准差以完成标准化, 按feature执行 - samplewise_std_normalization:
布尔值,将输入的每个样本除以其自身的标准差 - zca_whitening:
布尔值,对输入数据施加ZCA白化 - zca_epsilon:
ZCA使用的eposilon,默认1e-6 - rotation_range:
整数,数据提升时图片随机转动的角度 - width_shift_range:
浮点数,图片宽度的某个比例,数据提升时图片水平偏移的幅度 - height_shift_range:
浮点数,图片高度的某个比例,数据提升时图片竖直偏移的幅度 - shear_range:
浮点数,剪切强度(逆时针方向的剪切变换角度) - zoom_range:
浮点数或形如[lower,upper]的列表,随机缩放的幅度,若为浮点数,则相当于[lower,upper] = [1 - zoom_range, 1+zoom_range] - channel_shift_range:
浮点数,随机通道偏移的幅度 - fill_mode:;
‘constant’,‘nearest’,‘reflect’或‘wrap’之一,当进行变换时超出边界的点将根据本参数给定的方法进行处理 - cval:
浮点数或整数,当fill_mode=constant时,指定要向超出边界的点填充的值 - horizontal_flip:
布尔值,进行随机水平翻转 - vertical_flip:
布尔值,进行随机竖直翻转 - rescale:
重放缩因子,默认为None. 如果为None或0则不进行放缩,否则会将该数值乘到数据上(在应用其他变换之前) - preprocessing_function:
将被应用于每个输入的函数。该函数将在图片缩放和数据提升之后运行。该函数接受一个参数,为一张图片(秩为3的numpy array),并且输出一个具有相同shape的numpy array - data_format:
字符串,“channel_first”或“channel_last”之一,代表图像的通道维的位置。该参数是Keras 1.x中的image_dim_ordering,“channel_last”对应原本的“tf”,“channel_first”对应原本的“th”。以128x128的RGB图像为例,“channel_first”应将数据组织为(3,128,128),而“channel_last”应将数据组织为(128,128,3)。该参数的默认值是~/.keras/keras.json中设置的值,若从未设置过,则为“channel_last”
六、数据集扩充
扩充思路:
- 运用上节课的内容对文件进行遍历(os模块)
- 引用上述第五点,对图片进行随机处理(keras.preprocessing.image模块)
- 生成图片,并将其保存到指定文件夹下(flow方法)
2276

被折叠的 条评论
为什么被折叠?



