Matplotlib에서 이미지를 표시하는 imshow의 초보

이 기사는 후루카와 연구실 후루카와 연구실 Advent_calender 6일째 기사입니다.
본 기사는 후루카와 연구실의 학생이 학습의 일환으로서 쓴 것입니다. 내용이 모호하거나 표현이 다소 다를 수 있습니다.

소개



imshow는 간단하게 말하면 데이터를 이미지로 표시해주는 도구입니다. 이미지를 표시하거나 데이터를 이미지로 시각화할 때 유용합니다.
imshow의 첫 번째 인수는 RGBA의 이미지 데이터 또는 2차원 스칼라 데이터입니다. cmap을 지정하면 원본 이미지를 회색조 등으로 변환할 수 있습니다.

이번에는 이미지를 표시하는 경우와 데이터를 시각화하는 경우의 2가지의 경우로 해봅시다.

imshow에 대한 자세한 내용은 공식 참조을 참조하십시오.

우선 이미지를 정상적으로 표시



PIL (Python Image Library)은 Python의 이미지 처리 라이브러리입니다. 그 밖에 OpenCV라는 이미지 처리 라이브러리도 있는 것 같습니다.
PIL 설치는 아래와 같습니다.
$ pip install pillow

처음에는 참을 수 없습니다.
from PIL import Image
import matplotlib.pyplot as plt

먼저 이미지를 로드합니다. 이번에는 같은 디렉토리에 이미지 파일과 프로그램을 두고 있습니다.
#画像の読み込み
im = Image.open("1729971_s.jpg")

im을 표시하면 이런 느낌입니다. Jpeg 이미지의 RGB 데이터가 포함되어 있음을 알 수 있습니다.
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=640x427 at 0x2877E085148>
여기 imshow의 등장입니다. 인수는 이미지 데이터의 im만을 전달합니다.
plt.imshow(im)
plt.show()


이것만으로 간단하게 화상을 표시할 수 버립니다.
(이번에 사용한 무료 이미지 다운로드 사이트는 여기입니다.)

2D 스칼라 데이터를 이미지로 표시



우선, 참을 수 없습니다.

from PIL import Image
import matplotlib.pyplot as plt
#データ生成用にnumpyをインポート
import numpy as np

데이터 생성 및 그리기
#データの生成、0~1までの25点を生成、2Dにするためにreshape
data = np.linspace(0,1,25).reshape(5,5)
im = plt.imshow(data)
#カラーバーの表示
plt.colorbar(im)
plt.show()



하나의 데이터 포인트가 1픽셀에 대응하는 것을 알 수 있습니다. 데이터 포인트가 많을수록 픽셀 수가 증가하고 부드러운 이미지가됩니다. 여기의 컬러맵은 기본적으로 입력 데이터 포인트의 최대값과 최소값(여기서는 1.0과 0.0)에 따라 색상이 지정됩니다. 컬러맵의 최대치와 최소치를 지정하고 싶은 경우는, vmin,vmax (을)를 인수에 가져옵니다. 여기에서는 vmin=-1,vmax=1로 설정합니다.
im = plt.imshow(data,vmin=-1,vmax=1)

왼쪽의 기본값은 vmin=-1,vmax=1로 지정한 경우를 나타냅니다. 색상이 변경된 것을 알 수 있습니다.


컬러맵을 변경할 때



imshow 인수cmap를 지정하여 컬러맵을 변경할 수 있습니다. 이 예에서는 회색조로 표시하기 위해 cmap='Greys'입니다. 기본값은 cmap='viridis'입니다. 컬러맵을 선택할 때는 Choosing Colormaps in Matplotlib을 참조하십시오.
im = plt.imshow(data, cmap='Greys')



상하를 바꾸어 그릴 때



디폴트는 좌상으로부터 순서대로 데이터를 늘어놓고 있습니다만 imshow 의 인수를 origin='lower' 로 하면(자), 좌하로부터 데이터를 늘어놓아 줍니다. 이것에 의해, 상하를 바꾸어 그릴 수가 있습니다. 기본값은 origin='upper'입니다.
자세한 내용은 Matplotlib tutorial, origin and extent in imshow에 자세히 설명되어 있습니다.
im = plt.imshow(data, origin='lower')



결론



정말 간단하지만 Matplotlib의 imshow에 대해 요약했습니다.
이 기사가 누군가의 도움이 되길 바랍니다.

참고문헌



[1] Matplotlib로 이미지 표시
htps : // 코 m / 자부로 / ms / 5637b424c655b136527

좋은 웹페이지 즐겨찾기