python-3.x - 如何从两侧模糊形状?
问题描述
请问如何在下面的脚本中从两边模糊这个环?
import numpy as np
import matplotlib.pyplot as plt
n, radii = 50, [.7, .95]
theta = np.linspace(0, 2*np.pi, n, endpoint=True)
xs = np.outer(radii, np.cos(theta))
ys = np.outer(radii, np.sin(theta))
# in order to have a closed area, the circles
# should be traversed in opposite directions
xs[1,:] = xs[1,::-1]
ys[1,:] = ys[1,::-1]
ax = plt.subplot(111, aspect='equal')
ax.fill(np.ravel(xs), np.ravel(ys), edgecolor='#348ABD')
plt.show()
解决方案
这是一种创建图像并应用高斯模糊的方法:
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()
推荐阅读
- python - 如何解决未知标签类型:决策树 Python 中的“未知”
- vb.net - 无法在标签框中显示计算值 - Visual Basic
- python - Pyspark 数据帧:从 pyspark 数据帧中删除累积对
- keras - 如何计算 LSTM 的正确批量大小?
- perl - 如何从 statfs 获取 f_type?
- c++ - 为什么要枚举具有转发引用的项目集合?
- ruby-on-rails - Refile gem如何在图像上添加水印
- c# - 如何在 UWP 应用中替换 Segoe UI 表情符号字体?
- java - JAVAFX 音频无法在 JAR 文件中播放
- scala - 仅当数组输入的大小为 1 时,函数才返回错误值