所以当我将噪点叠加到帧中的图像时,所有的图像都会显示破碎。噪音有什么问题吗?
import numpy as np
import cv2
image = cv2.imread("sunset.jpg")
img = np.float64(image)
noise = np.random.randn(*img.shape) * 80 # 80% noise
noisy_img = img + noise
noisy_img = np.uint8(np.clip(noisy_img, 0, 255))
# cv2.imshow("res:", np.hstack([image, noisy_img]))
cv2.imshow("res:", np.hstack([image, noisy_img, noise]))
cv2.waitKey()
cv2.destroyAllWindows()
有一个基本问题:np。uint8类型。Uint8只能存储[0,255]范围内的2^8=256个值。如果您的原始图像具有高像素值,那么当您使用
时,这些像素可能会饱和并被剪切为255。np.clip()
我建议降低噪音强度。
必须将噪声数据归一化为整数值(int),如下所示:
cv2.imshow("res:", np.hstack((image, noisy_img, np.uint8(noise))))