Maison > Article > développement back-end > Comment ajouter du bruit aux images en utilisant Python
Comment utiliser Python pour ajouter du bruit aux images
Introduction :
Avec le développement de la technologie, le traitement d'image numérique est devenu une méthode de traitement d'image courante. Parmi eux, l'ajout de bruit à l'image est une étape importante du traitement de l'image. En ajoutant du bruit, le réalisme et la complexité de l'image peuvent être améliorés. Cet article expliquera comment utiliser Python pour ajouter du bruit aux images et fournira des exemples de code pertinents.
1. Comprendre le bruit de l'image
Le bruit de l'image fait référence à des perturbations aléatoires qui affectent la qualité et la clarté de l'image. Les bruits d'image courants incluent le bruit gaussien, le bruit sel et poivre, le bruit de Poisson, etc. Parmi eux, le bruit gaussien est le type de bruit le plus courant et le plus couramment utilisé. Il s’agit d’un nombre aléatoire conforme à la distribution gaussienne.
2. Python implémente l'ajout de bruit d'image
L'utilisation de Python pour ajouter du bruit aux images peut être obtenue en utilisant les bibliothèques NumPy et OpenCV. Vous trouverez ci-dessous un exemple de code qui montre comment ajouter du bruit gaussien à une image.
import cv2 import numpy as np def add_gaussian_noise(image): mean = 0 std_dev = 50 noise = np.random.normal(mean, std_dev, image.shape).astype(np.uint8) noisy_image = cv2.add(image, noise) return noisy_image # 读取图像 image = cv2.imread('image.jpg') # 添加高斯噪声 noisy_image = add_gaussian_noise(image) # 显示原始图像和噪声图像 cv2.imshow('Original Image', image) cv2.imshow('Noisy Image', noisy_image) cv2.waitKey(0) cv2.destroyAllWindows()
Dans le code ci-dessus, utilisez d'abord la fonction cv2.imread()
pour lire une image. Ensuite, une fonction add_gaussian_noise()
est définie, qui utilise la fonction np.random.normal()
pour générer du bruit aléatoire conforme à la distribution gaussienne et utilise cv2 . La fonction add()
ajoute du bruit à l'image originale. Enfin, utilisez la fonction cv2.imshow()
pour afficher l'image originale et l'image de bruit, et utilisez des fonctions telles que cv2.waitKey(0)
pour contrôler le temps d'affichage et interaction. cv2.imread()
函数读取一张图像。然后,定义了一个add_gaussian_noise()
函数,该函数使用np.random.normal()
函数生成符合高斯分布的随机噪声,并使用cv2.add()
函数将噪声添加到原始图像中。最后,使用cv2.imshow()
函数显示原始图像和噪声图像,并使用cv2.waitKey(0)
等函数控制显示的时间和交互。
三、其他噪声添加方法
除了高斯噪声,还有其他一些噪声添加方法可以使用。例如,可以使用np.random.randint()
函数生成椒盐噪声,代码示例如下:
def add_salt_and_pepper_noise(image, salt_prob, pepper_prob): noise = np.zeros(image.shape, dtype=np.uint8) salt_locations = np.random.rand(*image.shape) < salt_prob pepper_locations = np.random.rand(*image.shape) < pepper_prob noise[salt_locations] = 255 noise[pepper_locations] = 0 noisy_image = cv2.add(image, noise) return noisy_image # 添加椒盐噪声 noisy_image = add_salt_and_pepper_noise(image, salt_prob=0.01, pepper_prob=0.01)
在以上示例代码中,add_salt_and_pepper_noise()
函数使用np.random.randint()
En plus du bruit gaussien, il existe d'autres méthodes d'ajout de bruit qui peuvent être utilisées. Par exemple, vous pouvez utiliser la fonction np.random.randint()
pour générer du bruit de sel et de poivre. L'exemple de code est le suivant :
Dans l'exemple de code ci-dessus, le add_salt_and_pepper_noise. ()
utilise np.random.randint()
génère un entier aléatoire entre 0 et 255, puis définit les valeurs des pixels sur blanc et noir selon le rapport du sel et du bruit de poivre, et ajoute enfin le bruit à l'image originale.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!