이미지 처리 작업을 할 때 이미지를 NumPy 배열 형태로 다뤄야 하는 경우가 많습니다. Matplotlib의 imread() 함수를 사용하면 이미지 파일을 손쉽게 읽어 배열로 변환하고, 화면에 시각화할 수 있습니다.
처리 순서
- 그림(figure) 크기를 설정하고, 서브플롯 사이 및 주변의 여백(padding)을 자동으로 조정합니다.
plt.imread()메서드를 사용하여 파일에서 이미지를 읽어 NumPy 배열로 변환합니다.- 읽어온 이미지의 NumPy 배열을 콘솔에 출력합니다.
axis('off')메서드를 사용하여 축(axis)을 숨깁니다.show()메서드를 호출하여 그림을 화면에 표시합니다.
예제 코드
from matplotlib import pyplot as plt
# 그림 크기 및 레이아웃 자동 조정 설정
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
# 이미지 파일을 읽어 NumPy 배열로 변환
im = plt.imread("forest.jpg")
print("Numpy array of the image is: ", im)
# 이미지 시각화
im = plt.imshow(im)
plt.axis('off') # 축 숨기기
plt.show()실행 결과
위 코드를 실행하면 다음과 같은 이미지가 화면에 표시됩니다.

동시에 콘솔에는 해당 이미지의 NumPy 배열이 출력됩니다. 각 픽셀은 R(빨강), G(초록), B(파랑) 값으로 구성된 형태입니다.
[[[ 47 129 211]
[ 47 129 211]
[ 49 130 212]
...
[ 50 76 109]
[ 52 77 108]
[ 41 66 97]]
[[ 47 129 211]
[ 47 129 211]
[ 49 130 212]
...
[ 43 69 102]
[ 51 76 107]
[ 46 71 102]]
[[ 45 130 211]
[ 45 130 211]
[ 48 130 212]
...
[ 42 67 98]
[ 45 70 101]
[ 49 74 105]]
...
[[102 53 21]
[101 51 18]
[111 59 22]
...
[ 28 17 11]
[ 31 16 9]
[ 33 16 9]]
[[ 99 49 14]
[ 85 35 0]
[100 50 13]
...
[ 29 16 10]
[ 30 15 8]
[ 33 16 9]]
[[ 93 45 7]
[ 91 46 7]
[ 93 47 11]
...
[ 29 16 10]
[ 36 19 12]
[ 39 20 14]]]핵심 정리
plt.imread()는 이미지 파일을 높이 × 너비 × 채널(RGB) 구조의 3차원 NumPy 배열로 반환합니다. 이렇게 변환된 배열은 imshow()로 시각화할 수 있으며, NumPy의 다양한 연산 기능을 활용해 이미지 필터링, 색상 변환 등의 후속 처리도 가능합니다.