2012-04-25 58 views
4

对不起,如果这看起来像一个愚蠢或懒惰的“我不能找到它”的问题,但我一直在尝试几天,找到一份文件或类似的东西来解释如何(在2D图像上)产生斑点噪声我发现去除斑点噪声的一种更简单的方法是平均滤波器(我已经实现),但是我绝对无法找到产生噪声的方式。有人能指导我到哪里我可以学会产生斑点噪声吗?此外,它会是一个问题,问是否有一个简单的方法来做到这一点在OpenCV(一个C++图像处理库)散斑噪音生成

感谢您的任何帮助你可以提供。

回答

4

散斑噪声本质上是一个乘性噪声,它可能(或不可能)有一个加性噪声(定义因环境而异)。这个paper提供了斑点噪声的一个很好的概述,包括描述和去除它的方法。

下面是一些简单的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) 

无噪音:

enter image description here

与斑点噪声: enter image description here

+0

哇!代码+优秀解释+我可以参考的论文?非常感谢。 – user901898 2012-04-25 09:43:11

+0

@ user901898 - 欢呼:)和幸运你! – fraxel 2012-04-26 10:16:55

0

散斑噪声是链接编辑到物理成像过程,所以我不确定很容易(甚至是真的有可能)以一般方式进行模拟。

但是,根据您所需的图像类型,您可以使用其他形式的噪声来接近它。我猜测乘法的盐胡椒噪音应该或多或少地模拟SAR图像。

另一个可能更好的可能性是探索美国国家航空航天局/欧空局的网站,并寻找合成孔径雷达图像(寻找像昴星团,科斯莫天空和SAR卢佩等节目)。一些门控激光成像实验室也公开发布了一些样本数据。

+0

我已经开发的方法产生标准普尔噪音,所以如果我只是将标准普尔的结果与输入的结果相乘,它应该是“类似“散斑噪音?我的应用实际上是比较和对比不同的空间,频率和小波技术的去噪能力。问题在于我被要求使用a)高斯b)S&P和c)斑点来破坏图像。我开发了其他两种方法,但似乎卡在斑点图像上。我也会看看其他的可能性。感谢您的快速回复:) – user901898 2012-04-25 08:40:19

+0

是否适合科学图像处理课程?大多数基本课程假设斑点为乘法噪声,因此将图像与噪声相乘(而不是添加噪声)应该可以实现。但你可以向电讯局长申请确认。 – sansuiso 2012-04-25 08:57:21

0

它可能只是一个添加高斯噪声到您的图像的问题。 cvRandArr似乎是一个很好的候选人。

你也可以通过用你的信号琢磨你的噪声来得到更复杂的东西,这也很容易,因为它只是原始图像和噪声之间的一些像素范围的乘法。

+0

感谢您的快速回复。正如我在别处提到的,我的应用程序要求我为高斯,盐和胡椒斑产生噪音。 – user901898 2012-04-25 08:44:46

+0

“斑点”是嘈杂图案的通用名称,它可以是高斯或标准普尔,所以我不明白问什么 – CharlesB 2012-04-25 09:00:18