Cara menggunakan Python untuk menambah bunyi pada gambar
Pengenalan:
Dengan perkembangan teknologi, pemprosesan imej digital telah menjadi kaedah pemprosesan imej yang biasa. Antaranya, menambah hingar pada imej merupakan langkah penting dalam pemprosesan imej Dengan menambah hingar, realisme dan kerumitan imej dapat dipertingkatkan. Artikel ini akan memperkenalkan cara menggunakan Python untuk menambah hingar pada imej dan memberikan contoh kod yang berkaitan.
1. Memahami hingar imej
Bunyi imej merujuk kepada gangguan rawak yang menjejaskan kualiti dan kejelasan imej. Bunyi imej biasa termasuk hingar Gaussian, hingar garam dan lada, hingar Poisson, dsb. Antaranya, hingar Gaussian adalah jenis hingar yang paling biasa dan paling biasa digunakan Ia adalah nombor rawak yang mematuhi taburan Gaussian.
2. Python melaksanakan penambahan hingar imej
Menggunakan Python untuk menambah hingar pada imej boleh dicapai dengan menggunakan perpustakaan NumPy dan OpenCV. Di bawah ialah kod sampel yang menunjukkan cara menambah hingar Gaussian pada imej.
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()
Dalam kod di atas, mula-mula gunakan fungsi cv2.imread()
untuk membaca imej. Kemudian, fungsi add_gaussian_noise()
ditakrifkan, yang menggunakan fungsi np.random.normal()
untuk menjana hingar rawak yang mematuhi taburan Gaussian dan menggunakan cv2 . Fungsi add()
menambah hingar pada imej asal. Akhir sekali, gunakan fungsi cv2.imshow()
untuk memaparkan imej asal dan imej hingar, dan gunakan fungsi seperti cv2.waitKey(0)
untuk mengawal masa paparan dan interaksi. 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()
Selain bunyi Gaussian, terdapat kaedah penambahan hingar lain yang boleh digunakan. Sebagai contoh, anda boleh menggunakan fungsi np.random.randint()
untuk menghasilkan bunyi garam dan lada Contoh kod adalah seperti berikut:
Dalam kod sampel di atas, add_salt_and_pepper_noise. ()
fungsi menggunakan np.random.randint()
menjana integer rawak antara 0 dan 255, kemudian menetapkan nilai piksel kepada putih dan hitam mengikut nisbah garam dan bunyi lada, dan akhirnya menambah bunyi pada imej asal.
Atas ialah kandungan terperinci Bagaimana untuk menambah bunyi pada gambar menggunakan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!