为了账号安全,请及时绑定邮箱和手机立即绑定

创建与另一个图像具有相同均值和(偏斜)分布的随机噪声图像

创建与另一个图像具有相同均值和(偏斜)分布的随机噪声图像

开心每一天1111 2021-11-02 20:16:39
我有一个表示为 uint16 numpy 数组 ( orig_arr) 且分布偏斜的图像。我想创建一个新noise_arr的随机值数组 ( ),但它与 的均值和标准差相匹配orig_img。我相信这将需要两个主要步骤:测量平均值和分布 orig_arr使用步骤 1 中测量的均值和分布创建一个新的随机值数组我几乎不知道如何做到这一点,但这里有一个示例图像和一些代码,可以帮助您入门:示例图片:https : //drive.google.com/open?id=1bevwW-NHshIVRqni5O62QB7bxcxnUier(看起来是空白但不是)如果它真的只是一个字符串并且你想要的数据总是在同一个位置你可以这样做。String = "Sat Apr 18 23:22:15 PDT 2009"hour = String[11:13]print(hour)这返回,23即使它来自日期时间或其他东西,这也是一样的。如果这是函数的其他输出,您可以将其转换为字符串,然后以相同的方式提取数据。hour = str(some_output)[11:13]但是,如果您不确定您想要的数据将始终位于字符串的同一位置,那么我会建议以下内容。import resomestring = "More text here Sat Apr 18 23:22:15 PDT 2009 - oh boy! the date could be anywhere in this string"regex = re.search('\d{2}\:\d{2}\:\d{2}', somestring)hour = regex.group()[:2]print(hour)regex.group() 正在返回,23:22:15然后 [:2] 提取前两项返回,23
查看完整描述

1 回答

?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

我认为scipy.stats.skewnorm可能会奏效。它可以让您表征偏态正态分布,还可以从偏态正态分布中采样数据。


现在......也许这对你的数据来说是一个糟糕的假设......也许它不是正常的,但这是我尝试的第一件事。


# import skewnorm

from scipy.stats import skewnorm


# find params

a, loc, scale = skewnorm.fit(orig_arr)


# mimick orig distribution with skewnorm

# keep size and shape the same as orig_arr

noise_arr = skewnorm(a, loc, scale).rvs(orig_arr.size).astype('uint16').reshape(orig_array.shape)

有更多关于探索这种数据的细节......绘制它......比较它......在这里: 如何创建uint16高斯噪声图像?


此外...我认为使用imshow和设置vmin,并vmax可以让你看看你的数据的图像或热图是该范围敏感。上面的链接也证明了这一点。


希望有帮助!


查看完整回答
反对 回复 2021-11-02
  • 1 回答
  • 0 关注
  • 216 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信