如何生成 ROI 的高斯分布强度?

Joh*_*ohn 1 python image-processing python-3.x

我的数组A大小为 64x64。如果像素位于 ROI 内部,则 ROI 区域的像素强度为 100。投资回报率之外为零

import numpy as np

A= np.zeros((64,64))
A[16:48,26:48]=100
Run Code Online (Sandbox Code Playgroud)

我想将内部 ROI 的强度值更改为均值为 100、方差为 1 的高斯分布。我该怎么做?我尝试了下面的代码,但它不正确,因为 np.random.normal 代表整个数组,而不是 ROI

noise_value = np.random.normal(0, 1, size=A.shape)
A = A*noise_value + A
Run Code Online (Sandbox Code Playgroud)

scr*_*rx2 5

尝试这个:

import numpy as np
import matplotlib.pyplot as plt

def gaus(x, a, m, s):
    return np.sqrt(a)*np.exp(-(x-m)**2/(2*s**2))
    # if you want it normalized:
    #return 1/(np.sqrt(2*np.pi*s**2))*np.exp(-(x-m)**2/(2*s**2))                               

xx, yy = np.meshgrid(np.arange(100), np.arange(100))

gaus2d = gaus(xx, 100, 50, 10)*gaus(yy, 100, 50, 10)

plt.figure()
plt.imshow(gaus2d) 
plt.colorbar()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述