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

Matplotlib에서 입력 이미지를 읽어 NumPy 배열로 출력하는 방법

이미지 처리 작업을 할 때 이미지를 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()

실행 결과

위 코드를 실행하면 다음과 같은 이미지가 화면에 표시됩니다.

Matplotlib에서 입력 이미지를 읽어 NumPy 배열로 출력하는 방법

동시에 콘솔에는 해당 이미지의 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의 다양한 연산 기능을 활용해 이미지 필터링, 색상 변환 등의 후속 처리도 가능합니다.