Код: Выделить всё
import numpy as np
import scipy.signal
import matplotlib.pyplot as plt
# Compute filter kernel with radius correlation_scale (can probably be a bit smaller)
correlation_scale = 150
x = np.arange(-correlation_scale, correlation_scale)
y = np.arange(-correlation_scale, correlation_scale)
X, Y = np.meshgrid(x, y)
print(X.shape,Y.shape)
dist = np.sqrt(X*X + Y*Y)
filter_kernel = np.exp(-dist**2/(2*correlation_scale))
< /p>
Второй шаг кода генерирует сетку случайного шума: < /p>
Код: Выделить всё
n = 512
noise = np.random.randn(n, n)
< /p>
Третий шаг сверкает случайный шум, генерируемый на шаге 2, сгенерированным на шаге 1. < /p>
Код: Выделить всё
noise1 = scipy.signal.fftconvolve(noise, filter_kernel, mode='same')
< /p>
Мой вопрос: как вывод шага 3 в конечном итоге выглядит так вместо сглаженной версии случайного шума? Разве свершение с гауссовым ядром не так, как применение гауссового размытия? Например, если я применяю гауссовый фильтр на генерируемый случайный шум, вывод будет выглядеть так: < /p>
Код: Выделить всё
from scipy.ndimage import gaussian_filter
noise = gaussian_filter(noise , sigma=1, radius=10)
Почему последние два изображения так отличаются друг от друга?
Подробнее здесь: https://stackoverflow.com/questions/793 ... ssian-blur