Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Matplotlib과 NumPy로 배열을 회색조(그레이스케일) 이미지로 저장하는 방법

데이터 분석이나 이미지 처리 작업을 하다 보면 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 배열의 값들이 밝기(명도) 차이로 변환되어 회색조 이미지로 출력됩니다. 배열의 값이 클수록 흰색에 가깝게, 작을수록 검은색에 가깝게 표현됩니다.

Matplotlib과 NumPy로 배열을 회색조(그레이스케일) 이미지로 저장하는 방법

추가 팁

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