데이터 분석이나 이미지 처리 작업을 하다 보면 NumPy 배열을 회색조(grayscale) 이미지 형태로 시각화해야 하는 경우가 자주 있습니다. Matplotlib의 imshow() 메서드와 컬러맵 설정만으로 이 과정을 아주 간단하게 처리할 수 있습니다.
구현 단계
NumPy 배열을 회색조 이미지로 표시하려면 다음 순서대로 진행합니다.
- 먼저 그림(figure) 크기를 설정하고, 서브플롯 주변 및 사이의 여백(padding)을 조정합니다.
- 예제용으로 5×5 크기의 무작위(random) 데이터 배열을 생성합니다.
- 컬러맵(colormap)을 "gray"로 지정하여 회색조로 표현합니다.
- imshow() 메서드를 사용해 배열 데이터를 이미지로 렌더링합니다.
- 마지막으로 show() 메서드를 호출하여 결과 그림을 화면에 출력합니다.
전체 예제 코드
import numpy as np from matplotlib import pyplot as plt # 그림 크기 및 자동 레이아웃 설정 plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True # 5x5 크기의 무작위 배열 생성 arr = np.random.rand(5, 5) # 컬러맵을 회색조로 설정 plt.gray() # 배열을 이미지로 표시 plt.imshow(arr) plt.show()
실행 결과
코드를 실행하면 5×5 배열의 값들이 밝기(명도) 차이로 변환되어 회색조 이미지로 출력됩니다. 배열의 값이 클수록 흰색에 가깝게, 작을수록 검은색에 가깝게 표현됩니다.

추가 팁
- plt.gray() 대신 plt.imshow(arr, cmap='gray')처럼 imshow() 호출 시 직접 컬러맵을 지정할 수도 있습니다.
- 실제 이미지 파일로 저장하려면 plt.savefig('output.png')를 show() 호출 전에 사용하면 됩니다.
- 무작위 데이터 대신 실제 이미지를 다룰 때는 PIL이나 OpenCV로 불러온 후 같은 방식으로 적용할 수 있습니다.