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()
메소드를 사용하여 현재 작업 디렉토리의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()
메소드는 전체 이미지를 배열로 읽어 들이고 너비 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()
출력:
원형 패치를 사용하여 잘린 이미지를 표시합니다. 여기서는 중심이(160, 160)
이고 반경이 150 인 원형 패치를 사용하여 이미지를 자릅니다.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn