日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python实现向图像随机添加高斯白噪声,并修改尺寸

發布時間:2024/3/12 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python实现向图像随机添加高斯白噪声,并修改尺寸 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

基于python向圖像隨機添加高斯噪聲,并修改尺寸
噪聲分布設置為(均值為0,方差分布在0~50之間)

# -*- coding: utf-8 -*- """ Created on Nov Mon 29 14:09:45 2021@author: 瀛臺夜雪 """ import os import numpy as np import cv2 import globdef main():src_dir='./example/'save_dir = './example/train'src_dir_test='./example/test'save_dir_test = './example/test'#遍歷文件夾下所有的圖片filepaths = glob.glob(save_dir + '/*.jpg')filepaths_test = glob.glob(src_dir_test + '/*.jpg')def sortKeyFunc(s):return int(os.path.basename(s)[:-4])#os.path.basename()返回path最后的文件名,[:-4],取后綴前的名字filepaths_test.sort(key=sortKeyFunc)filepaths.sort(key=sortKeyFunc)print("[*] Reading train files...")#如果地址不存在,創建新地址文件夾if not os.path.exists(save_dir):os.mkdir(save_dir)os.mkdir(save_dir_test)os.mkdir('./example/train/noisy')os.mkdir('./example/train/original')os.mkdir('./example/test/noisy')os.mkdir('./example/test/original')print("[*] Applying noise...")# np.linspace(start,stop,num)創建等差數列sig = np.linspace(0,50,len(filepaths))np.random.shuffle(sig)# print(sig)sig_test = np.linspace(0,50,len(filepaths_test))np.random.shuffle(sig_test)for i in range(len(filepaths)):image = cv2.imread(filepaths[i])#將圖片變換成180*180大小的圖片image = cv2.resize(image,(180,180), interpolation = cv2.INTER_CUBIC)row,col,ch = image.shapemean = 0sigma = sig[i]# print("this is train sigma")# print(sigma)#np.random.normal(loc=mean,scale=sigma,size=(row,col,ch))生成高斯分布的概率密度隨機數,均值,方差,輸入樣式 #建立方差隨機的高斯噪聲,方差分布在0到50之間gauss = np.random.normal(mean,sigma,(row,col,ch))gauss = gauss.reshape(row,col,ch)noisy = image + gauss #np.clip(a,a_min,a_max)將輸入的原始a限制在a_min與a_max之間,小于a_min賦值為a_min,大于a_max賦值為a_maxnoisy = np.clip(noisy, 0, 255) #noise.astype('uint8'),轉變數據類型為uint8型,uint8為8位無符號整數類型,表示范圍為[0:255]noisy = noisy.astype('uint8')cv2.imwrite(os.path.join(save_dir, "noisy/%04d.png" %i), noisy)cv2.imwrite(os.path.join(save_dir, "original/%04d.png" %i), image)for i in range(len(filepaths_test)):image = cv2.imread(filepaths_test[i])image = cv2.resize(image,(180,180), interpolation = cv2.INTER_CUBIC)row,col,ch = image.shapemean = 0sigma = sig[i]# print("this is test sigma")# print(sigma)gauss = np.random.normal(mean,sigma,(row,col,ch))gauss = gauss.reshape(row,col,ch)noisy = image + gaussnoisy = np.clip(noisy, 0, 255)noisy = noisy.astype('uint8') cv2.imwrite(os.path.join(save_dir_test, "noisy/%d.png" %i), noisy)cv2.imwrite(os.path.join(save_dir_test, "original/%d.png" %i), image)print("[*] Noisy and original images saved")if __name__ == "__main__":main()

原始圖像:

噪聲圖像:

總結

以上是生活随笔為你收集整理的python实现向图像随机添加高斯白噪声,并修改尺寸的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。