Python에서 Matplotlib imread

Suraj Joshi 2024년2월15일
Python에서 Matplotlib imread

이 기사에서는 Matplotlib 패키지의imread()메소드를 사용하여 이미지 파일을 배열로 읽는 방법을 설명합니다.

matplotlib.pyplot.imread()

matplotlib.pyplot.imread()는 파일의 이미지를 배열로 읽어들입니다.

통사론

matplotlib.pyplot.imread(fname, format=None)

여기서 fname은 읽을 이미지 파일의 이름을, format은 이미지 파일 형식을 나타냅니다. format=None이면 함수는 파일 이름에서 형식을 추출합니다.

이 함수는 회색조 이미지의 경우 MxN, RGB 이미지의 경우 MxNx3, RGBA이미지의 경우 MxNx4모양의 배열을 반환합니다. 여기서 M은 너비이고 N은 이미지의 높이입니다.

예: matplotlib.pyplot.imread()함수를 사용하여 이미지 읽기

import numpy as np
import matplotlib.pyplot as plt

img_array = plt.imread("lena.png")
plt.imshow(img_array)
plt.title("Display Image read using imread()")
plt.axis("off")
plt.show()

출력:

imread 메서드를 사용하여 이미지 읽기

imread()메소드를 사용하여 현재 작업 디렉토리의lena.png 이미지를 배열로 읽어 들인 다음imshow()메소드를 사용하여 이미지를 표시합니다.

기본적으로 표시된 이미지에는 틱이있는 X 축과 Y 축이 있습니다. 축과 눈금 제거의 서브 플롯에 대한 축을 끄는 방법), 우리는plt.axis('off') 문을 사용합니다. 마지막으로matplotlib.pyplot.show()함수를 사용하여 이미지를 표시합니다.

shape 속성을 사용하여 이미지 배열의 모양을 볼 수 있습니다.

import matplotlib.pyplot as plt

img_array = plt.imread("lena.png")
print(img_array.shape)

출력:

(330, 330, 3)

너비가 330, 높이가 330, 채널이 3 개인 3 차원 이미지 배열을 나타내는(330, 330, 3)이미지의 모양을 인쇄합니다.

예: matplotlib.pyplot.imread()함수를 사용하여 이미지 자르기

matplotlib.pyplot.imread()가 이미지를 NumPy 배열로 읽은 후:연산자를 사용하여 배열을 인덱싱하여 이미지를자를 수 있습니다.

import matplotlib.pyplot as plt

img_array = plt.imread("lena.png")[50:300, 30:300]
plt.imshow(img_array)
plt.axis("off")
plt.title("Clipped Image")
plt.show()

출력:

imread 메서드를 사용하여 이미지 자르기

여기서imread()메소드는 전체 이미지를 배열로 읽어 들이고 너비 50 ~ 300 위치, 높이 30 ~ 300 위치 요소 만 선택하고 인덱스 배열을img_array에 저장합니다. 그런 다음imshow()함수를 사용하여 인덱스 배열을 표시합니다.

import matplotlib.pyplot as plt
import matplotlib.patches as patches

img_array = plt.imread("lena.png")

fig, ax = plt.subplots()
im = ax.imshow(img_array)
patch = patches.Circle((160, 160), radius=150, transform=ax.transData)
im.set_clip_path(patch)

ax.axis("off")
plt.show()

출력:

imread 방법을 사용한 원형 이미지

원형 패치를 사용하여 잘린 이미지를 표시합니다. 여기서는 중심이(160, 160)이고 반경이 150 인 원형 패치를 사용하여 이미지를 자릅니다.

작가: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

관련 문장 - Matplotlib Images