抱歉如果这似乎是一个愚蠢或懒惰的“我找不到”的问题,但是我已经尝试了几天来寻找一篇论文或任何类似的东西来解释如何生成斑点噪声(在2D图像上)。我已经发现,消除斑点噪声的更简单方法之一是均值滤波器(我已经实现了),但是绝对找不到产生噪声的方法。请问有人可以指导我学习如何生成斑点噪声吗?此外,是否可以要求在OpenCV中以简单的方式完成它(C ++图像处理库)?
感谢您提供的任何帮助。
感谢您提供的任何帮助。
斑点噪声本质上是一种乘性噪声,可能(或可能不)还带有加性噪声(定义因情况而异)。这篇论文提供了斑点噪声的良好概述,包括去除该噪声的描述和方法。
以下是一些简单的 Python 代码,可以产生乘性斑点噪声:
import cv
im = cv.LoadImage('tree.jpg', cv.CV_LOAD_IMAGE_GRAYSCALE)
mult_noise = cv.CreateImage((im.width,im.height), cv.IPL_DEPTH_32F, 1)
cv.RandArr(cv.RNG(6), mult_noise, cv.CV_RAND_NORMAL, 1, 0.1)
cv.Mul(im, mult_noise, im)
cv.ShowImage("tree with speckle noise", im)
cv.WaitKey(0)
无噪声:
有斑点噪声:
斑点噪声与物理成像过程相关,因此我不确定是否容易(甚至真的可能)以一般方式模拟它。
但是,根据您所需的图像类型,您可以使用其他形式的噪声来接近它。我猜一个乘性盐和胡椒噪声应该差不多可以模拟 SAR 图像。
另一个(可能更好的)可能性是探索 NASA / ESA 的网站,并寻找 SAR 图像(查找 Pleiades、Cosmo-Skymed 和 SAR Lupe 等程序)。一些门控激光成像实验室可能也已经公开发布了一些样本数据。
只需向您的图像添加高斯噪声即可。cvRandArr
似乎是一个不错的选择。
如果您将噪声与信号相结合,也可以得到更复杂的效果,这也很容易实现,只需在原始图像和噪声之间进行一些像素级别的乘法即可。