我目前正在尝试大致量化要添加到图像中的噪声。
我通过将包含一个体积的3D numpy数组与其中设置了其大小的3D体积具有正态分布相结合来添加噪声。
产生噪音的方法是:
def RandomNoise(magnitude):
"""Function to make a numpy array of 100x100x100 of random noise"""
NoiseArray = np.random.normal(0,magnitude,size=(100,100,100))
return NoiseArray
然后我假设我可以使用以下代码得出噪声增加的一般值:
import numpy
from scipy import stats
n = 0
while n < 10000:
Noise = RandomNoise(0.5) #Makes the random noise array and puts it in Noise
Volumewithnoise = (np.clip((Volume + Noise) * (1 - Volume), -1, 1)) #Adds noise to the MRC whilst waiting the object more highly and clipping the array within 0 and 1
data = Volumewithnoise.astype(np.float16)
VolumeSNR = stats.signaltonoise(Volume, axis=None)
VolumeNoiseSNR = stats.signaltonoise(Volumewithnoise, axis=None)
a = VolumeSNR / VolumeNoiseSNR
with open("outputnoise_0.2.txt", "a") as myfile:
myfile.write('{} \n'.format(a))
n = n+1
然后我将其绘制在棱镜中。数据的平均值并不是不合理的(噪声增加了40倍左右),但可以达到10000倍,绘制得不是很好。我在这里算错了吗?还是那样?
感谢所有帮助。