精华内容
下载资源
问答
  • 此代码可以实现图像的去噪和增强
  • 图像降噪Demo

    2017-12-28 05:55:39
    视频图像处理应用,malab图像图片降噪Demo,可以下载后看一眼。
  • 学习图像降噪、bilateral filtering、nonlocal means filtering、小波降噪、DCT降噪。 报告要求:对给出的图像进行上述处理,附上代码并且对处理结果给出展示。 报告形式,里面有附带的程序以及结果。
  • 全变分法去噪,1992年基本算法的实现,可以实现各种图片的降噪
  • 基本的图像降噪算法通常是通过对图像进行低通滤波来去除图像中的噪声。 这种方法去掉了有噪声的像素,但是以模糊图像为代价——所有的边缘都被模糊了。   更先进的降噪算法检测图像中的边缘,并沿垂直于...
  • 带有3D图像降噪Proc的图像优先残差U-Net网络。 欧元。 信号处理。 Conf。 EUSIPCO,第1264-1268页,2020年。(hal-02500664) 我们提出了一种改进的U-Net架构(ResPrU-Net),该架构利用先前的图像进行3D图像降噪。...
  • 基于matlab的医学图像降噪,非常适合医学图像的处理,可以用于医学图像的预处理
  • 本文在对图像降噪进行总体概述的基础上,介绍了传统降噪和小波降噪的原理,提出一种以阈值降噪法为基础的混合算法。然后用MATLAB中的小波工具箱对一个含有噪声图像进行降噪。通过实验结果的对比,可以看出新算法可以...
  • 学习图像降噪、bilateral filtering、nonlocal means filtering、小波降噪、DCT降噪。 报告要求:对给出的图像进行上述处理,附上代码并且对处理结果给出展示。 为程序
  • 为了有效地抑制超声图像中的斑点噪声,提出了一种基于反向传播(BP)神经网络的自适应双边滤波的超声图像降噪方法。该方法能够通过BP神经网络预测的局部区域与参考噪声区域之间的相似度值区分超声图像中的噪声区域与...
  • 主要是傅里叶变换在图像处理中降噪的应用
  • PCA图像降噪新算法-LPG PCA,全名叫做Two-stage Image Denoising by Principal Component Analysis with Local Pixel Grouping。内含算法代码和数据集,均经本人实测,可进行灰度图像和RGB图像的降噪,且PSNR和SSIM...
  • 用python实现的k-svd,可用来进行图像降噪
  • 图像降噪

    千次阅读 2018-11-17 11:31:53
    图像降噪,也称图像去噪(Image denoising)。 滤波是图像降噪的一种方法,但降噪不是滤波的唯一应用场合。 文章目录图像噪声局部去噪非局部去噪去噪效果对比 图像噪声 原图 常见图像噪声有以下四种: ...

    图像降噪,也称图像去噪(Image denoising)。
    滤波是图像降噪的一种方法,但降噪不是滤波的唯一应用场合。

    图像噪声

    原图

    常见图像噪声有以下四种:

    高斯噪声泊松噪声
    乘性噪声 椒盐噪声

    高斯噪声

    高斯噪声,指概率密度函数服从高斯分布(即正态分布)的一类噪声。如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的,则称它为高斯白噪声。

    泊松噪声

    泊松噪声,指符合泊松分布的噪声模型。泊松分布适合描述单位时间内随机事件发生次数的概率分布。

    乘性噪声

    乘性噪声一般由信道不理想引起,它们与信号的关系是相乘的,信号在它在,信号不在时他也就不在了。

    椒盐噪声

    椒盐噪声,又称脉冲噪声,它随机改变一些像素值,是由图像传感器、传输信道、解码处理等产生的黑白相间的亮暗点噪声。

    局部去噪

    OpenCV中有多个可以降低图像噪声、对图像实现平滑滤波的函数,如

    • blur:对各种噪声都有一定的抑制作用

    • GaussianBlur:对随机噪声比较好,对椒盐噪声效果不好

    • medianBlur:对椒盐噪声效果比较好

    具体可参见:图像滤波

    非局部去噪

    在滤波技术里,通常取像素周围的一小部分邻域进行平滑滤波。对于非局部去噪技术,OpenCV提供了四种变体:

    使用单个灰度图像

    函数原型:

    def fastNlMeansDenoising(src, dst=None, h=None, templateWindowSize=None, searchWindowSize=None)
    

    使用单个彩色图像

    函数原型:

    def fastNlMeansDenoisingColored(src, dst=None, h=None, hColor=None, templateWindowSize=None, searchWindowSize=None)
    

    通用参数:

    • h:值越大表示去噪声力度越大,同时细节丢失也越多,默认值为10

    • hColor:与h相同,但仅适用于彩色图像,大小通常与h相同

    • templateWindowSize:相似性权重计算窗口大小,一般为5~15之间的奇数

    • searchWindowSize:搜索窗口,大小可以设置为相似性计算窗口大小的3~5倍的奇数

    使用在短时间内捕获的图像序列(灰度图像)

    函数原型:

    def fastNlMeansDenoisingMulti(srcImgs, imgToDenoiseIndex, temporalWindowSize, dst=None, h=None, templateWindowSize=None, searchWindowSize=None) 
    

    使用在短时间内捕获的图像序列(彩色图像)

    函数原型:

    def fastNlMeansDenoisingColoredMulti(srcImgs, imgToDenoiseIndex, temporalWindowSize, dst=None, h=None, hColor=None, templateWindowSize=None, searchWindowSize=None)
    

    通用参数:

    • srcImgs:带噪点的图像帧的列表

    • imgToDenoiseIndex: 指定需要降噪的那一帧对应的索引。

    • temporalWindowSize:指定多少个周围的帧用来去噪,奇数。(如,传入5帧图像列表,imgToDenoiseIndex = 2, temporalWindowSize = 5,即使用第0~4帧,来给第2帧去噪)

    去噪效果对比

    import cv2
    
    def get_srcImgs():
    	imgs = []
    	imgs_gray = []
    	videoCapture = cv2.VideoCapture("./test.mp4")
    	videoCapture.set(cv2.CAP_PROP_POS_FRAMES, 90) 
    	for i in range(3):
    		success, img= videoCapture.read()
    		gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    		imgs.append(img)
    		imgs_gray.append(gray) 
    	return imgs, imgs_gray
    
    def show_GaussianBlur(img):
    	gaussian = cv2.GaussianBlur(img, (5, 5), 0)
    	gaussian_Canny = cv2.Canny(gaussian, 42, 42 * 3, apertureSize=3)
    	cv2.imshow('gaussian kSize=5*5', gaussian)
    	cv2.imshow('gaussian_Canny', gaussian_Canny)
    
    def denoise(x):
    	h = cv2.getTrackbarPos('h', 'denoise demo')
    	tempSize = cv2.getTrackbarPos('size', 'denoise demo')
    	searchSize = tempSize * 3
    
    	if tempSize % 2 == 0:
    		return
    
    	denoise_color = cv2.fastNlMeansDenoisingColored(img, None, h, h, tempSize, searchSize)
    	cv2.imshow('denoise color', denoise_color)
    
    	denoise = cv2.fastNlMeansDenoising(gray, None, h, tempSize, searchSize)
    	denoise_Canny = cv2.Canny(denoise, 42, 42 * 3, apertureSize=3)
    	cv2.imshow('denoise', denoise)
    	cv2.imshow('denoise_Canny', denoise_Canny)
    
    	denoise_color_Multi = cv2.fastNlMeansDenoisingColoredMulti(imgs, 1, 3, None, h, h, tempSize, searchSize)
    	cv2.imshow('denoise_color_Multi', denoise_color_Multi)
    
    	denoise_Multi = cv2.fastNlMeansDenoisingMulti(imgs_gray, 1, 3, None, h, tempSize, searchSize)
    	denoise_Multi_Canny = cv2.Canny(denoise_Multi, 42, 42 * 3, apertureSize=3)
    	cv2.imshow('denoise_Multi', denoise_Multi)
    	cv2.imshow('denoise_Multi_Canny', denoise_Multi_Canny)
    
    h = 9
    size = 9
    
    imgs, imgs_gray = get_srcImgs()
    img = cv2.imread("./frame_91.png")
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    
    cv2.namedWindow('denoise demo')
    cv2.imshow('denoise demo', img)
    cv2.createTrackbar('h', 'denoise demo', h, 30, denoise)
    cv2.createTrackbar('size', 'denoise demo', size, 15, denoise)
    
    show_GaussianBlur(img)
    
    denoise(0)
    if cv2.waitKey(0) == 27:
    	cv2.destroyAllWindows()
    
    展开全文
  • 简要介绍了小波分析基本理论中的小波变换和小波包变换,重点论述了小波分析在图像降噪处理中的应用及其算法流程。在此基础上,利用Matlab R2007进行了图像去噪仿真测试,并对仿真结果进行了分析。结果表明,利用小波...
  • 基于小波变换的图像降噪技术,曾诚,,小波分析在图像处理中有非常重要的应用。本文给出其在图像降噪应用,以Matlab为平台的图像降噪实现过程,并对相应的图像处理结果进��
  • 图像降噪处理

    2018-04-30 12:16:54
    clc; clear all; I=imread('face1.jpg'); I=imnoise(I,'gaussian',0,0.1);%对图像I加噪 %subplot(211); imshow(I); %I=double(I); .....
  • BM4D,它是对三维图像处理,是医学图像(核磁共振图)的去噪,方法与BM3D一致,不同之处在于,BM3D输入是二维图像,将相似块集合视作整体成为三维集合,因此命名为3D,而BM4D输入是三维图像,得到的相似块应为三维...
  • 图像降噪算法——图像降噪算法总结

    千次阅读 多人点赞 2020-04-02 17:32:12
    图像传感器与信号处理——图像降噪算法图像传感器与信号处理——图像降噪算法1. 图像噪声建模2. 图像降噪算法 图像传感器与信号处理——图像降噪算法 图像降噪对于SLAM的落地也是非常重要的,这几天我看了几篇和图像...

    图像降噪算法——图像降噪算法总结

    图像降噪算法——图像降噪算法总结

    前面这段时间我看了几篇和图像降噪相关的Review,给我的感觉就是SLAM这一研究领域像是一片汪洋,而图像降噪领域则是另一片汪洋,算法实在太多,刚开始让我接触这个领域会有点蒙圈。

    我主要看了如下三篇Review:
    《Image Denoising Review From Classical to State-of-the-art Approaches,2020》
    《A Brief Review of Image Denoising Algorithms and Beyond,2019》
    《Brief Review of Image Denoising Techniques,2019》
    结合一些大佬的博客,我按照我的理解对图像降噪算法进行了分类,分类的目的是帮助更好掌握各个算法,每篇Review和博客对图像降噪算法的分类都不尽相同,我的也不一定完全准确,下面是按照我的理解对各个算法进行的分类:
    在这里插入图片描述
    在学习图像降噪算法之前,最好先对图像传感器有所了解,如下:

    图像传感器与信号处理——详解CCD与CMOS图像传感器

    图像传感器与信号处理——详解图像传感器噪声

    根据分类,我对其中部分算法进行学习,然后尝试基于OpenCV对算法用C++进行实践,完成了一系列博客,如下:

    图像降噪算法——图像噪声模型

    图像降噪算法——中值滤波/均值滤波/高斯滤波/双边滤波

    图像降噪算法——非局部均值降噪算法

    图像降噪算法——离散傅里叶变换

    图像降噪算法——维纳滤波

    图像降噪算法——小波硬阈值滤波(上)

    图像降噪算法——小波硬阈值滤波(下)

    以上算法C++代码实现都在我的Github中,以下算法为后来补充的算法,代码暂时还没有整理到一起,如下:

    图像降噪算法——混合域:BM3D算法

    图像降噪算法——稀疏表达:K-SVD算法

    图像降噪算法——低秩聚类:WNNM算法

    图像降噪算法——DnCNN / FFDNet / CBDNet / RIDNet / PMRID / SID

    图像降噪算法——Variance Stabilizing Transform / Generalization Anscombe Transform算法

    图像降噪算法——时域降噪算法

    最近两年在时域降噪领域还有一些非常棒的时域降噪算法,例如FastDVD,EDVR等,最近又计划先忙一些其他事情,后面有时间再继续补充。

    展开全文
  • 图像降噪与图像增强“Beautygate,” the latest iPhone -gate that can make images of people seem too smoothed out, is a result of two things: the new Smart HDR feature and aggressive noise reduction....
    图像降噪与图像增强

    图像降噪与图像增强

    “Beautygate,” the latest iPhone -gate that can make images of people seem too smoothed out, is a result of two things: the new Smart HDR feature and aggressive noise reduction. But what is digital noise reduction and why is it so important? Let’s find out.

    最新的iPhone门“ Beautygate”可以使人的图像看起来过于平滑,这是两方面的结果: 新的Smart HDR功能和积极的降噪功能 。 但是什么是数字降噪,为什么如此重要呢? 让我们找出答案。

    相机传感器如何工作 (How Camera Sensors Work)

    The digital sensor in your phone or camera is made from millions of small photosites. Each photosite corresponds to one pixel in the final image. When light hits a photosite, it creates an electric charge. The more light that hits the photosite, the stronger the charge created, and the brighter the pixel in the final image.

    手机或相机中的数字传感器是由数百万个小的photosites制成的。 每个光点对应于最终图像中的一个像素。 当光线照射到光敏石上时,会产生电荷。 入射到光敏部位的光越多,产生的电荷越强,最终图像中的像素越亮。

    As well as the charge created by light hitting the sensor, there is also a small amount of random background current that creates digital noise. This is where the problems start.

    除了光线撞击传感器而产生的电荷外,还有少量的随机背景电流会产生数字噪声。 这是问题开始的地方。

    Since the charge created at each photosite is linearly proportional to the amount of light that hits it, the maths works out that the brighter areas of the image have significantly more data than the shadow areas. This means the signal to noise ratio is lower in the dark areas of the image, which is why the shadow areas of an image are more prone to visible noise.

    由于在每个光点处产生的电荷与照射到其上的光量成线性比例,因此 ,数学计算得出,图像的较亮区域比阴影区域具有更多的数据。 这意味着在图像的暗区中信噪比较低,这就是为什么图像的阴影区更容易出现可见噪声的原因。

    Another factor is sensor size. Larger sensors collect more light simply because they’re bigger. As a result, they’re less prone to digital noise because the signal to noise ratio is higher. Smartphone cameras—since they have such small sensors—are particularly prone to noise.

    另一个因素是传感器尺寸 。 更大的传感器会因为更大而收集更多的光。 结果,它们不易产生数字噪声,因为信噪比更高。 由于智能手机相机的传感器这么小,它们特别容易产生噪音。

    将数据转换为图像 (Converting Data to Images)

    When you take a photo, unless you are shooting in RAW, your camera converts the image data into a JPG image file. It does this with some pretty complex mathematical operations that end up throwing away a lot of data to get a usable file.

    拍摄照片时, 除非使用RAW拍摄否则相机会将图像数据转换为JPG图像文件。 它通过一些非常复杂的数学运算来完成此操作,最终会丢弃大量数据以获取可用文件。

    Most cameras also process the resulting image a little bit to make it look better. They do things like increase the contrast and saturation, but they also run some noise reduction algorithms. In the image below, you can see a side-by-side view of a JPEG and an unprocessed RAW file captured at the same time with my iPhone 7 Plus. Check out how much more noise is in the RAW image.

    大多数相机还会对所得图像进行一点处理,以使其看起来更好。 它们执行诸如增加对比度和饱和度之类的操作,但是它们还运行一些降噪算法。 在下图中,您可以同时看到JPEG和我的iPhone 7 Plus捕获的未处理RAW文件的并排视图。 检查RAW图像中还有多少噪点。

    In general, this is a good thing. Digital noise is ugly, and noise reduction algorithms are pretty well understood; they work by averaging out small variations between pixels. You can see that, especially in the highlights, in the close-ups from the images above.

    总的来说,这是一件好事。 数字噪声很丑陋,并且降低噪声的算法也很容易理解。 它们通过平均像素之间的细微变化来工作。 您可以在上图的特写镜头中看到这一点,尤其是在高光部分。

    For the most part, your images will look better after noise reduction is applied. It’s an important part of post-processing any digital image. The JPEG shot is undeniably a nicer image than the rough RAW. It only becomes a problem when the algorithms are too aggressive for the subject, as is the case with beautygate. When this happens, natural variations like skin tones get smoothed out as well as any digital noise. I’ve taken things way too far in the image below.

    在大多数情况下,应用降噪后,图像会看起来更好。 这是对任何数字图像进行后处理的重要部分。 毫无疑问,与粗糙的RAW相比,JPEG拍摄的图像更好。 仅当算法对受试者过于激进时才成为问题,例如beautygate就是这种情况。 发生这种情况时,诸如肤色之类的自然变化以及任何数字噪声都会被消除。 我在下面的图片中做的太过分了。

    And since the original data is thrown away, there’s not much you can do after the fact.

    而且由于原始数据已被丢弃,因此事后您无能为力。

    防止手机噪音过大 (Preventing Aggressive Noise Reduction On Your Phone)

    The simplest way to prevent your phone or camera from applying overly aggressive noise reduction algorithms is to prevent them from applying any automatic noise reduction at all. To do this, you simply have to shoot in RAW.

    防止手机或相机应用过分主动的降噪算法的最简单方法是完全避免自动降噪。 为此,您只需要以RAW拍摄即可。

    With RAW images, all the image data—noise and everything—is stored in the file. It gives you more leeway when it comes to post-production and lets you control how much noise reduction is applied.

    对于RAW图像,所有图像数据(包括噪声和所有内容)都存储在文件中。 在后期制作方面,它给了您更多的回旋余地,并让您控制应用了多少种降噪方法。

    On an iPhone, you’ll need to use a third-party camera app. I’m a huge fan of Halide. On Android, the camera app on your phone may allow you to shoot RAW; if not, VSCO is a great free choice. By default, your DSLR or mirrorless camera should shoot RAW images. If it’s not the default on your camera, there’ll be a setting in the menu to change the format to which images are saved.

    在iPhone上,您需要使用第三方相机应用程序 。 我是Halide的忠实粉丝 。 在Android上,手机上的相机应用可能允许您拍摄RAW。 如果不是, VSCO是一个不错的免费选择 。 默认情况下,您的DSLR或无反光镜相机应拍摄RAW图像。 如果这不是您相机的默认设置,则菜单中会有一个设置可以更改保存图像的格式。



    Noise reduction isn’t a bad thing but, when your camera or smartphone automatically applies too much, things can look weird. The best thing to do is shoot RAW and take control.

    降噪并不是一件坏事,但是,当您的相机或智能手机自动应用过多时,看起来会很奇怪。 最好的办法是拍摄RAW并进行控制。

    翻译自: https://www.howtogeek.com/368550/what-is-noise-reduction-in-digital-images/

    图像降噪与图像增强

    展开全文
  • 图像降噪算法——图像噪声模型

    千次阅读 2020-04-02 16:09:06
    图像降噪算法——图像噪声模型图像降噪算法——图像噪声模型1. 图像噪声建模2. C++实现 图像降噪算法——图像噪声模型 1. 图像噪声建模 首先,我们要区分图像传感器噪声和图像噪声,图像传感器噪声我在博客图像...

    图像降噪算法——图像噪声模型

    1. 图像噪声建模

    首先,我们要区分图像传感器噪声图像噪声,图像传感器噪声我在博客图像传感器与信号处理——详解图像传感器噪声中有过总结,图像传感器噪声会造成各种各样的图像噪声。

    其次,我们需要了解图像降噪模型,图像降噪模型可以建模为: y = x + n y=x+n y=x+n其中, y y y是观察到的噪声图像, x x x是图像真值, n n n是图像噪声,图像降噪过程就是通过 y y y获取 x x x,在许多论文中将这个过程描述为不可逆过程,这也就是为什么图像降噪难。本博客就是对图像噪声 n n n进行建模:

    《数字图像处理》一书中对噪声建模主要有一下几种类型:

    (1)高斯噪声
    高斯噪声是最常见也是最重要的的一种噪声,众多的图像降噪算法都是以降低高斯噪声为目标设计的,其概率密度函数如下所示: p ( z ) = 1 2 π σ 2 e − ( z − μ ) 2 / 2 σ 2 p(z)=\frac{1}{\sqrt{2 \pi \sigma^{2}}} e^{-(z-\mu)^{2}} /_{2 \sigma^{2}} p(z)=2πσ2 1e(zμ)2/2σ2其中, σ \sigma σ是标准偏差, μ \mu μ是灰度值的平均值,这个公式说明的是灰度值为 z z z的概率为多少。

    (2)瑞利噪声
    瑞丽噪声的概率密度函数如下所示: p ( z ) = { 2 b ( z − a ) e − ( z − a ) 2 / b , z ⩾ a 0 , z < a p(z)=\left\{\begin{array}{ll} \frac{2}{b}(z-a) \mathrm{e}^{-(z-a)^{2} / b}, & z \geqslant a \\ 0, & z<a \end{array}\right. p(z)={b2(za)e(za)2/b,0,zaz<a概率密度的均值和方法分别为: z ˉ = a + π b / 4 \bar{z}=a+\sqrt{\pi b / 4} zˉ=a+πb/4 σ 2 = b ( 4 − π ) 4 \sigma^{2}=\frac{b(4-\pi)}{4} σ2=4b(4π)瑞利噪声对于图像直方图近似倾斜的图像中的噪声建模较为有效。

    (3)伽马噪声
    伽马噪声的概率密度函数如下所示: p ( z ) = { a b z b − 1 ( b − 1 ) ! e − a z , z ⩾ a 0 , z < a p(z)=\left\{\begin{array}{cl} \frac{a^{b} z^{b-1}}{(b-1) !} \mathrm{e}^{-a z}, & z \geqslant a \\ 0, & z<a \end{array}\right. p(z)={(b1)!abzb1eaz,0,zaz<a其中均值和方差分别为 z ˉ = b a \bar{z}=\frac{b}{a} zˉ=ab σ 2 = b a 2 \sigma^{2}=\frac{b}{a^{2}} σ2=a2b伽马噪声相对瑞利噪声分布会更加倾斜

    (4)指数噪声
    指数噪声的概率密度函数如下所示: p ( z ) = { a e − a z , z ⩾ 0 0 , z < 0 p(z)=\left\{\begin{array}{ll} a \mathrm{e}^{-a z}, & z \geqslant 0 \\ 0, & z<0 \end{array}\right. p(z)={aeaz,0,z0z<0其概率密度函数的均值和方差分别为 z ˉ = 1 a \bar{z}=\frac{1}{a} zˉ=a1 σ 2 = 1 a 2 \sigma^{2}=\frac{1}{a^{2}} σ2=a21指数噪声分布相对伽马噪声又会进一步倾斜

    (5)量化噪声
    量化噪声又称均匀噪声,此类噪声是由于将模拟数据转换为数字数据而引起的,因此是幅度量化过程中固有的,其概率密度函数如下: p ( z ) = { 1 b − a , a ⩽ z ⩽ b 0 o t h e r w i s e p(z)=\left\{\begin{array}{ll} \frac{1}{b-a}, & a \leqslant z \leqslant b \\ 0 & otherwise \end{array}\right. p(z)={ba1,0azbotherwise
    (6)椒盐噪声
    椒盐噪声又称脉冲噪声、尖峰噪声,在图像上表现为随机分布的黑白点,其概率密度函数如下图所示:
    p ( z ) = { P a , z = a P b , z = b 1 − P a − P b , o t h e r w i s e p(z)=\left\{\begin{array}{ll} P_{a}, & z=a \\ P_{b}, & z=b \\ 1-P_{a}-P_{b}, & otherwise \end{array}\right. p(z)=Pa,Pb,1PaPb,z=az=botherwise椒盐噪声可以通过中值滤波器进行消除。

    以上即《数字图像处理》中对各个图像噪声的建模,对于的概率密度函数的不同,书中给出了这样一张图予以区分:在这里插入图片描述
    那么除了《数字图像处理》中提到的几种图像噪声模型外,一般还有如下几种模型:

    (7)泊松噪声
    泊松噪声又称散粒噪声,我们知道,光源每秒发射的光子到达CMOS的越多,则该像素的灰度值越大。但是因为光源发射和CMOS接收之间都有可能存在一些因素导致某个光子并没有被CMOS接收到或者某个像素一时间段内发射的光子特别多,所以这就导致了灰度值的波动,也就产生了泊松噪声,方程描述为: p [ ( N ( t + τ ) − N ( t ) ) = k ] = e − λ τ ( λ τ ) k k ! k = 0 , 1 , … p[(N(t+\tau)-N(t))=k]=\frac{e^{-\lambda \tau}(\lambda \tau)^{k}}{k !} \quad k=0,1, \dots p[(N(t+τ)N(t))=k]=k!eλτ(λτ)kk=0,1,这个公式说明的是某个像素在间隔时间 τ \tau τ内接收到 k k k个光子的概率为多少。

    (8)斑点噪声
    在相干成像系统(如雷达,激光和声学等)中可以看到斑点噪声的出现,其概率密度函数如下: p ( z ) = z a − 1 e − z / a a − 1 ! a a p(z)=\frac{z^{a-1} e^{-z / a}}{a-1 ! a^{a}} p(z)=a1!aaza1ez/a斑点噪声在光学成像系统中很少出现,因此这里不作赘述。

    (6)周期性噪声
    周期性噪声无法用概率密度函数进行描述,也无法在空间域中进行消除,通常的方法是通过频域中的带阻滤波器进行消除,如下图所示,从左至右,第一幅图原始图像,第二幅图为频域图像,第三幅图为带阻滤波器,第四幅图为滤波后的图像。
    在这里插入图片描述

    2. C++代码实现

    下面分别是生成椒盐噪声和高斯噪声的函数:

    at Noise::CreateSaltNoise(const Mat &src, int n)
    {
        Mat dst = src.clone();
        for(int k = 0; k<n; k++)
        {
            int i = rand() % dst.rows;
            int j = rand() % dst.cols;
    
            if(dst.channels() == 1)
            {
                dst.at<uchar>(i,j) = 255;
            }
            else
            {
                dst.at<Vec3b>(i,j)[0] = 255;
                dst.at<Vec3b>(i,j)[1] = 255;
                dst.at<Vec3b>(i,j)[2] = 255;
            }
        }
    
        for(int k = 0; k<n; k++)
        {
            int i = rand() % dst.rows;
            int j = rand() % dst.cols;
    
            if(dst.channels() == 1)
            {
                dst.at<uchar>(i,j) = 0;
            }
            else
            {
                dst.at<Vec3b>(i,j)[0] = 0;
                dst.at<Vec3b>(i,j)[1] = 0;
                dst.at<Vec3b>(i,j)[2] = 0;
            }
        }
        return dst;
    }
    
    Mat Noise::CreateGaussianNoise(const Mat &src, double mu, double sigma)
    {
        Mat dst = src.clone();
        int row = dst.rows;
        int col = dst.cols;
        for(int i = 0; i<row; i++)
        {
            for(int j = 0; j<col; j++)
            {
                if(dst.channels() == 1)
                {
                    //构建高斯噪声
                    double u1, u2;
                    do
                    {
                        u1 = rand() * (1.0 / RAND_MAX);
                        u2 = rand() * (1.0 / RAND_MAX);
                    } while (u1 <= numeric_limits<double>::min());//u1不能为0
    
                    double z = sigma * sqrt(-2.0 * log(u1)) * cos(2 * CV_PI * u2) + mu;
                    //double z = sigma * sqrt(-2.0 * log(u1)) * sin(2 * CV_PI * u2) + mu;
    
                    int val = dst.at<uchar>(i,j) + z * 32;
                    val = (val<0)?0:val;
                    val = (val>255)?255:val;
    
                    dst.at<uchar>(i,j) = (uchar)val;
                }
                else
                {
                    for(int k = 0; k<dst.channels(); k++)
                    {
                        //构建高斯噪声
                        double u1, u2;
                        do
                        {
                            u1 = rand() * (1.0 / RAND_MAX);
                            u2 = rand() * (1.0 / RAND_MAX);
                        } while (u1 <= numeric_limits<double>::min());//u1不能为0
    
                        double z = sigma * sqrt(-2.0 * log(u1)) * cos(2 * CV_PI * u2) + mu;
                        //double z = sigma * sqrt(-2.0 * log(u1)) * sin(2 * CV_PI * u2) + mu;
    
                        int val = dst.at<Vec3b>(i,j)[k] + z * 32;
                        int test = dst.at<Vec3b>(i,j)[k];
                        val = (val<0)?0:val;
                        val = (val>255)?255:val;
                        dst.at<Vec3b>(i,j)[k] = (uchar)val;
                    }
                }
            }
        }
        return dst;
    }
    

    下面是运行结果:
    首先,下面是原图:
    在这里插入图片描述
    加上高斯噪声后的结果
    在这里插入图片描述
    加上椒盐噪声后的结果:
    在这里插入图片描述

    3. 结论

    1. 高斯噪声、瑞丽噪声、伽马噪声、指数噪声其实是比较类似的,只是统计分布会稍有区别,如果用代码实现应该是类似的。
    2. 研究图像噪声模型对于图像降噪算法的实现是非常重要的,比如我看Review的时候就有大佬提到,对于目前效果最好的深度学习降噪算法,其难于实际应用的一个方面就是训练模型所用的噪声都是高斯噪声,而我们摄像头拍摄图像的实际噪声要远比高斯噪声复杂,因此如果更好地对图像噪声进行建模非常重要。

    那这一小节就总结到这儿啦,有问题欢迎交流~

    此外,这里我写一个各种算法的总结目录图像降噪算法——图像降噪算法总结,对图像降噪算法感兴趣的同学欢迎参考

    展开全文
  • python图像降噪

    千次阅读 2021-11-27 18:41:06
     图像在数字化和传输等过程中会产生噪声,从而影响图像的质量,而图像降噪技术可以有效地减少图像中的噪声。如下图所示,左图是一幅包含噪声的图像(图中的黑点即为噪声),右图是降噪后的结果(黑点显著减少)。 ...
  • 数字图像处理(六)图像降噪处理

    千次阅读 2021-04-23 12:15:21
    1.噪声1.1噪声分类噪声是图像干扰的重要原因。一幅图像在实际应用中可能存在各种各样的噪声,这些噪声可能在传输中产生,也可能在量化等处理中产生。根据噪声和信号的关系可将其分为三种形式:(f(x,y)表示给定原始图像...
  • 压缩感知应用于图像降噪,具体方法有快速梯度投影重建等等的降噪算法和matlab代码。
  • 传统非局部均值(NLM)算法在滤波过程中采用固定滤波系数,从而导致图像细节过度平滑。为解决此问题,引入结构张量(ST)的迹作为图像特征区域的判别准则,设计了一种自适应滤波系数的权值函数(ST-NLM)。此外,针对传统算法...
  • 图像降噪和增强对人脸识别系统识别性能的影响.pdf
  • matlab椒盐去噪代码图像去噪 它包含用于使用中值滤波进行图像降噪的Verilog代码Matlab用于图像预处理。 包括捕获图像,并在图像中添加盐和胡椒粉噪声。 该噪声图像刺激了使用中值滤波的图像去噪核心的verilog实现。
  • 点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达 本文转自:AI算法与图像处理图像降噪,是最简单也是最基础的图像处理逆问题(inverse prob...
  • 为了抑制合成孔径雷达(synthetic aperture radar,SAR)成像系统所固有的相干斑噪声,提出一种小波域的多尺度自适应阈值滤波算法.本算法基于BayesShrink阈值,利用多尺度小波系数的局部统计量估计参数和阈值,并结合...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,414
精华内容 5,765
关键字:

图像降噪

友情链接: 天气.rar