В настоящее время я пытаюсь приблизительно определить количество шума, добавляемого к изображению.
Я добавляю шум, комбинируя мой трехмерный массив, содержащий объем, с трехмерным объемом с нормальным распределением в нем, для которого я установил величину.
метод создания шума:
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 раз), но оно может достигать 10000x, что не очень хорошо отображается. Я что-то здесь неправильно вычисляю или это так?
Спасибо за помощь.