Last active
October 27, 2024 12:52
-
-
Save Prasad9/28f6a2df8e8d463c6ddd040f4f6a028a to your computer and use it in GitHub Desktop.
Python code to add random Gaussian noise on images
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import cv2 | |
def add_gaussian_noise(X_imgs): | |
gaussian_noise_imgs = [] | |
row, col, _ = X_imgs[0].shape | |
# Gaussian distribution parameters | |
mean = 0 | |
var = 0.1 | |
sigma = var ** 0.5 | |
for X_img in X_imgs: | |
gaussian = np.random.random((row, col, 1)).astype(np.float32) | |
gaussian = np.concatenate((gaussian, gaussian, gaussian), axis = 2) | |
gaussian_img = cv2.addWeighted(X_img, 0.75, 0.25 * gaussian, 0.25, 0) | |
gaussian_noise_imgs.append(gaussian_img) | |
gaussian_noise_imgs = np.array(gaussian_noise_imgs, dtype = np.float32) | |
return gaussian_noise_imgs | |
gaussian_noise_imgs = add_gaussian_noise(X_imgs) |
Having a hard time trying to adapt it to a similar problem. I'm firstly testing this noise function to add later a sepia effect, so this looks more like a vintage image, but did not manage to plot it properly yet. Code goes as follows
def old_photo(file_nm): img = cv2.imread("HT.jpg")[...,::-1]/255.0 noise = np.random.normal(loc=0, scale=1, size=img.shape) noised_img = np.clip((img*(1 + noise*0.4)),0,1) plt.imshow(noised_img) if __name__ == "__main__": print(old_photo("HT.jpg"))
Do you know what can be going wrong here? I'm missing a point I guess
Your old_photo
function is returning None
. You need to do it in a jupyter
notebook. Or you can save the noised_image
. How come you're trying to print it? Even if you output the results, it'll be a numpy array.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Having a hard time trying to adapt it to a similar problem. I'm firstly testing this noise function to add later a sepia effect, so this looks more like a vintage image, but did not manage to plot it properly yet. Code goes as follows
Do you know what can be going wrong here? I'm missing a point I guess