Подтвердить что ты не робот

Сглаживание между пикселями imagesc\imshow в matlab, как matplotlib imshow

Когда я использую matplotlib imshow() в python для представления маленькой матрицы, он производит какой-то вид, если сглаживание между пикселями. Есть ли способ получить это в Matlab при использовании imshow или imagesc?

Например, используя matplotlib, это вывод идентификационной матрицы imshow(eye(3)): enter image description here

в то время как в matlab, imagesc(eye(3)):

enter image description here

Решением, которое я могу придумать, является экстраполяция и сглаживание с использованием какого-либо фильтра, но это не будет актуально для уровней одного пикселя. Я также пробовал myaa и export_fig, но они не являются удовлетворительными. Myaa использует весь GUI после применения, поэтому я не могу увеличивать или уменьшать масштаб, а export_fig заставляет меня сохранять фигуру в файл, а затем работать с этим файлом, слишком громоздким. Итак, есть ли способ сказать движку фигур Matlab (java или что не так) для этого сглаживания, сохраняя при этом удобство использования графического интерфейса фигуры?

4b9b3361

Ответ 1

Это связано с интерполяцией по умолчанию, которая установлена ​​на "билинейный". Я думаю, что "никто" не будет более интуитивным дефолтом. Вы можете изменить метод интерполяции по умолчанию (например, интерполяция = Нет) с помощью:

mpl.rcParams['image.interpolation'] = 'none'

Более подробную информацию о настройке Matplotlib можно найти на веб-сайте

В приведенном ниже коде дается обзор всех методов интерполяции:

methods = [None, 'none', 'nearest', 'bilinear', 'bicubic', 'spline16', 'spline36', 'hanning', 'hamming', \
           'hermite', 'kaiser', 'quadric', 'catrom', 'gaussian', 'bessel', 'mitchell', 'sinc', 'lanczos']

grid = np.random.rand(4,4)

fig, ax = plt.subplots(3,6,figsize=(12,6), subplot_kw={'xticks': [], 'yticks': []})
fig.subplots_adjust(hspace=0.3, wspace=0.05)

ax = ax.ravel()

for n, interp in enumerate(methods):
    ax[n].imshow(grid, interpolation=interp)
    ax[n].set_title(interp)

enter image description here