python图像添加高斯噪声,python产生高斯白噪声

  python图像添加高斯噪声,python产生高斯白噪声

  基于大蟒向图像随机添加香蕉火噪声,并修改尺寸

  噪声分布设置为(均值为0,方差分布在0~50之间)

  # -*-编码:utf-8 -*- 创建于2021年11月29日14:09:45 @作者:瀛台夜雪 import OS import numpy as NP import cv2 import glob def main():src _ dir= ./example/ save_dir= ./example/train src_dir_test= ./example/test save_dir_test= ./示例/测试 #遍历文件夹下所有的图片文件路径=glob。glob(保存目录/*).jpg )文件路径_ test=glob。glob(src _ dir _ test /* .jpg )def sortKeyFunc(s):return int(OS。路径。基本名称[:-4])# OS。路径。基本名称()返回小路最后的文件名,[:-4],取后缀前的名字文件路径_测试。排序(key=sort key func)文件路径。sort(key=sort key func)print([*]Reading train files . )#如果地址不存在,创建新地址文件夹如果不是OS。路径。exists(保存目录):操作系统。mkdir(保存目录)操作系统。mkdir(保存目录测试)操作系统。mkdir(./example/train/noisy) os.mkdir( ./例/训/原))OS。mkdir(./example/test/noise))OS。mkdir(./示例/测试/原始’)打印([*]应用噪波.)# np.linspace(开始,停止,数量)创建等差数列sig=np.linspace(0,50,len(文件路径))np。随机的。洗牌(SIG)#打印(SIG)SIG _ test=NP。Lin空间(0,50,len(文件路径_测试))NP。随机的。范围内I的shuffle(SIG _ test)(len(文件路径)):image=cv2。im read(文件路径[I])#将图片变换成180*180大小的图片image=cv2.resize(image,(180,180),插值=cv2 .INTER_CUBIC) row,col,ch=image。shape mean=0 sigma=SIG[I]# print(这是训练sigma )# print(sigma)# NP。随机的。normal(loc=均值,scale=sigma,size=(row,col,ch))生成香蕉火分布的概率密度随机数,均值,方差,输入样式#建立方差随机的香蕉火噪声,方差分布在0到50之间高斯=np.random.normal(mean,sigma,(row,col,ch))高斯=高斯。形状(行,列,通道)噪声=图像高斯# NP。剪辑(a,a_min,a_max)将输入的原始a限制在a_min与最大值之间,小于a_min赋值为a_min,大于最大值赋值为a _ max噪声=NP。clip(noise,0,255)#noise.astype(uint8 ),转变数据类型为uint8型,uint8为8位无符号整数类型,表示范围为嘈杂=嘈杂。astype( uint 8 )cv2。im写(OS。路径。加入(save _ dir,noisy/d.png %i),嘈杂)cv2。im写(OS。路径。join(save _ dir,original/d.png % I),image)for I in range(len(file paths _ test)):image=cv2。im read(file paths _ test[I])image=cv2。调整大小(图像,(180,180),插值=cv2 .INTER_CUBIC) row,col,ch=image。shape mean=0 sigma=SIG[I]# print(这是测试sigma )# print(sigma)gauss=NP。随机的。normal(mean,sigma,(row,col,ch))高斯=高斯。形状(行、列、通道)噪声=图像。clip(噪声,0.255)噪声=噪声。astype( uint 8 )cv2。im写(OS。路径。join(save _ dir _ test, noise/% d . png % I ),原始图像:

  噪声图像:

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: