Как размыть это кольцо с обеих сторон в следующем скрипте, пожалуйста? импортировать numpy как np импортировать matplotlib.pyplot как plt n, радиусы = 50, [.7, .95] theta = np.linspace (0, 2 * np.pi, n, endpoint = True) ...

0
Elena Greg 19 Янв 2021 в 09:38

1 ответ

Лучший ответ

Вот подход к созданию изображения и применению размытия по Гауссу:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap
from scipy import ndimage

rad1, rad2 = .7, .95
rad_max = 1.2 
x = np.linspace(-rad_max, rad_max, 500)
y = np.linspace(-rad_max, rad_max, 500)
r = np.sqrt(x[:, np.newaxis] ** 2 + y[np.newaxis, :] ** 2)
img = np.array((r > rad1) & (r < rad2), dtype=float)
img = ndimage.gaussian_filter(img, sigma=20, mode='nearest')
cmap = LinearSegmentedColormap.from_list('', ['white', 'dodgerblue'])
plt.imshow(img, extent=[-rad_max, rad_max, -rad_max, rad_max], cmap=cmap)
plt.show()

resulting plot

1
JohanC 19 Янв 2021 в 09:59