解决方案

python+OpenCv笔记(八):图像噪声(椒盐噪声、高斯噪声)

seo靠我 2023-09-25 19:37:49

由于图像采集、处理、传输等过程不可避免的会受到噪声的污染,妨碍人们对图像理解及分析处理。常见的图像噪声有高斯噪声、椒盐噪声等。

一、椒盐噪声

椒盐噪声也称为脉冲噪声,是图像中经常见到的一种噪声,它是一种随SEO靠我机出现的白点或者黑点,可能是亮的区域有黑色像素或是在暗的区域有白色像素(或是两者皆有)。

椒盐噪声的成因可能是影像讯号受到突如其来的强烈干扰而产生、类比数位转换器或位元传输错误等。例如失效的感应器导致像SEO靠我素值为最小值,饱和的感应器导致像素值为最大值。

目前,python-OpenCv中没有直接生成噪声的函数,需要自己手动编写,但十分容易。

代码示例:

def sp_noise(image, prob):""SEO靠我"添加椒盐噪声prob:噪声比例"""output = np.zeros(image.shape,np.uint8)thres = 1 - probfor i in range(image.shapeSEO靠我[0]):for j in range(image.shape[1]):rdn = random.random()if rdn < prob:output[i][j] = 0elif rdn > thSEO靠我res:output[i][j] = 255else:output[i][j] = image[i][j]return output

二、高斯噪声

高斯噪声是指噪声密度函数服从高斯分布的一类噪声。由于高斯SEO靠我噪声在空间和频域中数学上的易处理性,这种噪声(也称为正态噪声)模型经常被用于实践中。

代码示例:

def gasuss_noise(image, mean=0, var=0.001):"""添加高斯噪声mSEO靠我ean : 均值var : 方差"""image = np.array(image/255, dtype=float)noise = np.random.normal(mean, var ** 0.5SEO靠我, image.shape)out = image + noiseif out.min() < 0:low_clip = -1.else:low_clip = 0.out = np.clip(out,SEO靠我 low_clip, 1.0)out = np.uint8(out*255)return out

三、代码编写

import numpy as np import cv2 as cv SEO靠我 import random import matplotlib.pyplot as pltdef sp_noise(image, prob):"""添加椒盐噪声prob:噪SEO靠我声比例"""output = np.zeros(image.shape,np.uint8)thres = 1 - probfor i in range(image.shape[0]):for j inSEO靠我 range(image.shape[1]):rdn = random.random()if rdn < prob:output[i][j] = 0elif rdn > thres:output[i]SEO靠我[j] = 255else:output[i][j] = image[i][j]return outputdef gasuss_noise(image, mean=0, var=0.001):"""添SEO靠我加高斯噪声mean : 均值var : 方差"""image = np.array(image/255, dtype=float)noise = np.random.normal(mean, var SEO靠我** 0.5, image.shape)out = image + noiseif out.min() < 0:low_clip = -1.else:low_clip = 0.out = np.cliSEO靠我p(out, low_clip, 1.0)out = np.uint8(out*255)return outsrc = cv.imread("E:\\view.jpg") img = SEO靠我src.copy()# 调用噪声函数 img_sp = sp_noise(img, prob=0.02) # 噪声比例为0.02 img_gauss = gasuss_SEO靠我noise(img, mean=0, var=0.01) # 均值为0,方差为0.01# 显示图像 cv.imshow("src", img) cv.imshow("sSEO靠我p", img_sp) cv.imshow("gauss", img_gauss) cv.waitKey(0) cv.destroyAllWindowsSEO靠我()

原图:

椒盐噪声:

高斯噪声:

“SEO靠我”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与 我们联系删除或处理,客服邮箱:html5sh@163.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同 其观点或证实其内容的真实性。

网站备案号:浙ICP备17034767号-2