Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Lọc Gaussian ảnh có giá trị NaN trong Python Matplotlib

Lọc Gaussian trên ảnh chứa NaN sẽ làm toàn bộ giá trị trở thành NaN.

  • Tạo figure, 2 subplots dọc.
  • Tạo ma trận 4x4 có giá trị NaN.
  • Hiển thị ảnh gốc bằng imshow(cmap="cubehelix_r").
  • Áp dụng gaussian_filter từ scipy.ndimage với sigma=1.
  • Hiển thị ảnh sau lọc.
  • Hiển thị bằng show().

Ví dụ

import numpy as np
from matplotlib import pyplot as plt
from scipy.ndimage import gaussian_filter
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
fig, axes = plt.subplots(2)
data = np.array([[1., 1.2, 0.89, np.nan],
                 [1.2, np.nan, 1.89, 2.09],
                 [.78, .67, np.nan, 1.78],
                 [np.nan, 1.56, 1.89, 2.78]])
axes[0].imshow(data, cmap="cubehelix_r")
gaussian_filter_data = gaussian_filter(data, sigma=1)
axes[1].imshow(gaussian_filter_data, cmap="cubehelix_r")
plt.show()

Kết quả

Ảnh gốc và ảnh sau lọc Gaussian (toàn bộ NaN do lan truyền NaN).