Matplotlib 를 이용한 불균일 이미지 플로팅

Beginner

This tutorial is from open-source community. Access the source code

소개

이 랩에서는 Python 의 Matplotlib 라이브러리에서 NonUniformImage 클래스를 사용하는 방법에 대한 단계별 가이드를 제공합니다. NonUniformImage 를 사용하면 사용자가 불균일한 픽셀 위치를 가진 이미지를 플롯할 수 있습니다.

VM 팁

VM 시작이 완료되면, 왼쪽 상단을 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 접속하십시오.

때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한 사항으로 인해 작업의 유효성 검사는 자동화될 수 없습니다.

학습 중 문제가 발생하면 Labby 에게 문의하십시오. 세션 후 피드백을 제공해주시면 문제를 신속하게 해결해 드리겠습니다.

라이브러리 임포트

NonUniformImage 를 생성하기 전에 필요한 라이브러리를 임포트해야 합니다. 이 예제에서는 numpy 와 matplotlib 을 사용합니다.

import matplotlib.pyplot as plt
import numpy as np

from matplotlib import cm
from matplotlib.image import NonUniformImage

선형 및 비선형 배열 생성

두 개의 배열을 생성해야 합니다. 하나는 선형 값, 다른 하나는 비선형 값을 갖습니다. 이 배열은 NonUniformImage 를 생성하는 데 사용됩니다.

## 셀 중심에 대한 선형 x 배열:
x = np.linspace(-4, 4, 9)

## 고도로 비선형 x 배열:
x2 = x**3

y = np.linspace(-4, 4, 9)

z = np.sqrt(x[np.newaxis, :]**2 + y[:, np.newaxis]**2)

서브플롯 및 NonUniformImage 생성

이제 서브플롯을 생성하고 각 서브플롯에 NonUniformImage 를 추가합니다. 'nearest' 보간법을 사용하는 두 개와 'bilinear' 보간법을 사용하는 두 개, 총 네 개의 서브플롯을 생성합니다. interpolation 키워드 인수는 이미지를 표시하는 데 사용되는 보간법의 유형을 정의합니다.

## 서브플롯 생성
fig, axs = plt.subplots(nrows=2, ncols=2, layout='constrained')
fig.suptitle('NonUniformImage class', fontsize='large')

## Nearest 보간법
ax = axs[0, 0]
im = NonUniformImage(ax, interpolation='nearest', extent=(-4, 4, -4, 4), cmap=cm.Purples)
im.set_data(x, y, z)
ax.add_image(im)
ax.set_xlim(-4, 4)
ax.set_ylim(-4, 4)
ax.set_title('nearest')

ax = axs[0, 1]
im = NonUniformImage(ax, interpolation='nearest', extent=(-64, 64, -4, 4), cmap=cm.Purples)
im.set_data(x2, y, z)
ax.add_image(im)
ax.set_xlim(-64, 64)
ax.set_ylim(-4, 4)
ax.set_title('nearest')

## Bilinear 보간법
ax = axs[1, 0]
im = NonUniformImage(ax, interpolation='bilinear', extent=(-4, 4, -4, 4), cmap=cm.Purples)
im.set_data(x, y, z)
ax.add_image(im)
ax.set_xlim(-4, 4)
ax.set_ylim(-4, 4)
ax.set_title('bilinear')

ax = axs[1, 1]
im = NonUniformImage(ax, interpolation='bilinear', extent=(-64, 64, -4, 4), cmap=cm.Purples)
im.set_data(x2, y, z)
ax.add_image(im)
ax.set_xlim(-64, 64)
ax.set_ylim(-4, 4)
ax.set_title('bilinear')

plt.show()

결과 해석

서브플롯은 'nearest'와 'bilinear'의 두 가지 유형의 보간법을 표시합니다. 'nearest' 보간법은 가장 가까운 이웃의 픽셀 값을 표시하고, 'bilinear' 보간법은 네 개의 가장 가까운 이웃의 가중 평균을 표시합니다.

요약

NonUniformImage 는 불균일한 픽셀 위치를 가진 이미지를 플로팅하는 데 유용한 도구입니다. 이 랩에서는 필요한 라이브러리 가져오기, 선형 및 비선형 배열 생성, 서브플롯 및 NonUniformImage 생성, 결과 해석을 포함하여 Python 의 Matplotlib 라이브러리에서 NonUniformImage 를 사용하는 방법에 대한 단계별 가이드를 제공했습니다.