红外仿真图像添加噪声、模糊,python代码

近期给红外仿真图像加噪声和模糊,在几种常见的数字图像噪声,及使用python添加噪声的基础上写了一个批量添加噪声和模糊的代码

import cv2
import os
import numpy as np
from PIL import Image
from skimage import util


def make_noise(file_path, file,save_path, mean=0.0, var=0.01, ksize=(1, 1)):
    # 批处理
    img_path=os.path.join(file_path,file)
    image_names = os.listdir(img_path)  # 列举path下所有文件和文件夹名称(返回一个list)

    for image_name in image_names:
        if (image_name.endswith('.jpg')):
            img = Image.open(os.path.join(img_path, image_name))
            # 转灰度图
            img = img.convert('L')
            img = np.array(img)
            # 高斯模糊,ksize:模糊核,5为方差
            noise_gs_img = cv2.GaussianBlur(img, ksize, 5)
            # noise_gs_img=util.random_noise(img,mode='pepper',amount = 0.05)     # t添加椒盐噪声
            # 高斯噪声,mode:噪声类型,mean,var:高斯函数均值方差
            if var>0:
                noise_gs_img = util.random_noise(img, mode='gaussian', mean=mean, var=var)
                noise_gs_img = noise_gs_img * 255  # 由于输出是[0,1]的浮点型,先转成灰度图(我的输入就是灰度图)
                noise_gs_img = noise_gs_img.astype(np.int)  # 再变成整型数组

            # 转3通道图片
            noise_gs_img = Image.fromarray(noise_gs_img.astype('uint8')).convert('RGB')
            # 转array
            noise_gs_img = np.array(noise_gs_img)
            # 生成图片文件名
            save_name = file+"_Gsbur"+str(ksize[0])+"GsNoise"+str(int(100*var))+'_' + image_name
            # 保存
            cv2.imwrite(os.path.join(save_path, save_name), noise_gs_img)  # 保存到新建的文件夹


if __name__ == '__main__':
    # 图像路径
    file_path = r'G:\simulation'
    # 保存路径
    savedpath = r'G:\simulationResult\new'
    # 获取每种飞机所在的文件夹
    file_list = os.listdir(file_path)
    # 创建保存路径
    if os.path.exists(savedpath):
        pass
    else:
        os.mkdir(savedpath)
    # 高斯噪声方差
    vars = [0.0, 0.01]

    # vars = [0.0, 0.01, 0.02, 0.04]
    # ksizes = [(1, 1), (3, 3), (5, 5), (7, 7)]
    # 模糊核
    ksizes = [(9,9),(13,13),(15,15)]

    # 逐飞机处理
    for file in file_list:
        for var in vars:
            for ksize in ksizes:
                # 生成噪声图片
                make_noise(file_path,file, savedpath, var=var, ksize=ksize)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值