图片集扩容法则——python 图像批量增噪(加噪)算法 数据扩充

这次在做图像识别的项目中,由于部分选项的图片较为稀缺,所以采用了一些方法来扩容图片,图片加噪便是其中之一
当然也可以使用旋转,左右翻转的方式来进行扩容(上下翻转好像不行,未验证
这些都是不错的手段来对图片数据进行扩容

import cv2
import os
import numpy as np
import glob

# 文件夹自己建一下
# 这个函数对于文件名字有一定的要求,懒得改了,如果报错了没有shape属性的错,可以试试换个文件图片名字
# 如果后续有大佬可以试试

# 定义参数
loadPath = './img/'
savePath = './saltImage/'
proname = "Rose" # 图片前置名
rate = 0.004

# 加噪函数
def saltpepper(img, n):
    m = int((img.shape[0] * img.shape[1]) * n)
    for a in range(m):
        i = int(np.random.random() * img.shape[1])
        j = int(np.random.random() * img.shape[0])
        if img.ndim == 2:
            img[j, i] = 255
        elif img.ndim == 3:
            img[j, i, 0] = 255
            img[j, i, 1] = 255
            img[j, i, 2] = 255
    for b in range(m):
        i = int(np.random.random() * img.shape[1])
        j = int(np.random.random() * img.shape[0])
        if img.ndim == 2:
            img[j, i] = 0
        elif img.ndim == 3:
            img[j, i, 0] = 0
            img[j, i, 1] = 0
            img[j, i, 2] = 0
    return img

# 读取所有图片文件
file_list = glob.glob(loadPath+'*.jpg')  # 得到所有的jpg图片链接
# print(file_list)
# print(len(file_list))

# 检测文件夹是否存在
if not os.path.exists(savePath):
    os.mkdir(savePath)

for i in range(len(file_list)):
    img = cv2.imread(file_list[i])
    saltImage = saltpepper(img, rate)
    cv2.imwrite(savePath+proname+"_"+str(i+1)+".jpg", img)

此函数引用了这位大佬的代码,点击进入

你可能感兴趣的:(图片处理,图像识别,计算机视觉,opencv,神经网络,python)