【问题标题】:could numpy.random.poisson be used to add poisson noise to images?numpy.random.poisson 可以用来为图像添加泊松噪声吗?
【发布时间】:2013-10-24 05:32:55
【问题描述】:

对于一张图像的每个像素,我都有它的 x(int)、y(int) 和像素值(浮点数)。

现在我需要给图像添加噪点。numpy.random.poisson 合适吗?

我很担心,因为它不像新像素值=原始值+噪声,而是像

new pixle value=numpy.random.poisson(original value,1)。而且新的值都是整数。

我的问题就像标题一样。

我的目的是得到一颗恒星的光度测量误差。但我只有一个图像。所以我通过添加泊松噪声进行模拟。 请查看下图ccd图片,来源为红色特征。

【问题讨论】:

  • 嗯,是的,答案很简单。但是你的噪音统计数据是什么?它是多变量的(如果您尝试建模例如散粒噪声,可能不是)?您的图像的动态范围是多少?
  • 我们得到了一个光源的CCD图像。现在我们需要通过添加噪声来合成数据。应该是泊松噪声。图像中的最低值约为4700,最高为30000 .但我只关心源。像素值在覆盖源的框区域中介于 5000 到 5100 之间。去除背景后,像素值可能在 80 到 100 左右。我担心的是源较暗,背景较亮。实际上,添加的噪点可能比源本身要轻。
  • 噪点可能比图像更亮!如果您尝试在光线较暗的情况下使用数码相机拍照,图像通常会非常嘈杂(尽管通常已经彻底 jpegged)。我真的不明白您要做什么-也许您可以在问题中提供更多详细信息。也许使用一个微型合成数据集并显示您想要做什么以及它的问题。
  • 我已经更新了我的帖子。请检查一下。顺便说一句,动态范围是什么意思?就像维基百科说的那样简单?让我抓住机会。你曾经使用过 ds9(@987654321 @)?它可以显示一个适合的图像。源是微弱的,但我可以在 ds9 中调整比例以使源出现。这意味着动态范围已经改变?
  • 所以你想创建你上面的图像的合成版本?动态范围就是维基百科所说的。您是说噪声的统计数据来自图像吗?或者是其他东西?这是乘性噪声吗?以下是正确的...?你有一个非常微弱的恒星图像,它来自少量的入射光子,所以数据是在噪声统计中编码的? (大概也埋在散弹噪声中?)

标签: image image-processing numpy noise


【解决方案1】:

这是一个旧线程,但我知道答案,所以这里。

答案是肯定的。

imageplusshotnoise = numpy.random.poisson(lam=<noiseless_simulated_image>, size=None)

这将从泊松分布中为原始图像的每个像素生成一个示例图像。泊松分布有一个特殊的性质,即均值和方差相等。这意味着如果平均值是 100,则方差将为 100;因此,散粒噪声的标准差为 10(方差等于标准差的平方)。

创建一个所有值都等于 100 的 numpy 图像数组

>>> myimage = 100 * np.ones((100,100))
>>> np.mean(myimage)
100.0
>>> np.std(myimage)
0.0

注意平均值为100,标准差为0,如预期的那样

现在使用此图像作为泊松分布的 lambda 将从该分布中生成一个大小相同的样本

>>> imageplusnoise = np.random.poisson(lam=myimage, size=None)
>>> imageplusnoise.shape
(100, 100)

样本的均值与 lambda 具有相同的均值,但标准差将等于方差的平方,在泊松分布中等于均值。

>>> np.mean(imageplusnoise)
100.0474
>>> np.std(imageplusnoise)
10.015934965843179

要仅获得散粒噪声,只需从中减去 lambda,现在均值将接近于零(如果均值很小,则均值噪声将从零开始进一步倾斜),但它始终具有相同的标准偏差。

>>> noiseonlyimage = imageplusnoise - myimage
>>> np.mean(noiseonlyimage)
0.047399999999999998
>>> np.std(noiseonlyimage)
10.015934965843179

这里需要指出的是,lam参数是泊松分布的期望值,是无噪声的。您的起始图像看起来已经有噪声,因此我将首先通过您的光圈对星体响应进行建模以获得无噪声图像,例如使用一些点扩散函数(如艾里斑、sinc 函数或类似函数作为 numpy 的输入)。随机泊松函数。

【讨论】:

    猜你喜欢
    • 2013-10-17
    • 1970-01-01
    • 1970-01-01
    • 2019-02-06
    • 1970-01-01
    • 2013-02-13
    • 2015-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多