立即学习:https://edu.csdn.net/course/play/26281/327075?utm_source=blogtoedu
#加噪声,滤波
#颜色空间分解
import numpy as np
import cv2
#原始图像加入彩色噪声
def gauss_noise(image,mean=0,var=0.001):#高斯噪声,mean:均值,var:方差
image=np.array(image/255,dtype=float)#原始图像转换为0~1之间的浮点图像
noise=np.random.normal(mean,var**0.5,image.shape)#生成噪声
out=image+noise
if out.min()<0:
low_clip=-1.
else:
low_clip=0.
out=np.clip(out,low_clip,1.0)
out=np.uint8(out*255)#转换为0~255的图像
#cv2.imshow("Gauss",out)
return out
#将文件导入
filename = r'C:\Users\c\Pictures\lena.jpg'
img = cv2.imread(filename)
img=gauss_noise(img)#原图像加入高斯噪声
blur=cv2.blur(img,(5,5))#平均滤波
gauss=cv2.GaussianBlur(img,(5,5),0)#高斯滤波
median=cv2.medianBlur(img,5)#中值滤波
bilateral=cv2.bilateralFilter(img,5,150,150)#双边滤波
#显示原始图像和其他图像
cv2.imshow("source image", img)
cv2.imshow("Blurred", blur)
cv2.imshow("Gauss", gauss)
cv2.imshow("MedianF", median)
cv2.imshow("BilateralF", bilateral)
cv2.waitKey()
cv2.destroyAllWindows()