Matplotlib에서 그레이 스케일로 이미지를 표시하는 방법

Suraj Joshi 2023년1월30일
  1. matplotlib.pyplot.imshow()-Matplotlib에서 그레이 스케일로 이미지 표시
  2. 예: 그레이 스케일의 Matplotlib 디스플레이 이미지
Matplotlib에서 그레이 스케일로 이미지를 표시하는 방법

Matplotlib를 사용하여 회색조 이미지를 표시하려면 매개 변수cmap'gray'로 설정하고vmin0으로 설정하고vmax255로 설정하여matplotlib.pyplot.imshow()를 사용합니다. 기본적으로cmap,vminvmax의 값은None으로 설정됩니다.

matplotlib.pyplot.imshow()-Matplotlib에서 그레이 스케일로 이미지 표시

matplotlib.pyplot.imshow(X,
                         cmap=None,
                         norm=None,
                         aspect=None,
                         interpolation=None,
                         alpha=None,
                         vmin=None,
                         vmax=None,
                         origin=None,
                         extent=None,
                         shape= < deprecated parameter > ,
                         filternorm=1,
                         filterrad=4.0,
                         imlim= < deprecated parameter > ,
                         resample=None,
                         url=None,
                         *,
                         data=None,
                         **kwargs)

예: 그레이 스케일의 Matplotlib 디스플레이 이미지

import matplotlib.pyplot as plt
import matplotlib.image as img

image = img.imread("lena.jpg")

plt.imshow(image[:, :, 1], cmap="gray", vmin=0, vmax=255, interpolation="none")
plt.show()

출력:

그레이 스케일의 Matplotlib 디스플레이 이미지

이 메소드는matplotlib.image 모듈에서imread()함수를 사용하여 RGB 이미지 인lena.jpg 이미지를 읽습니다. 이미지를 회색조로 표시하려면 하나의 색상 채널 만 필요합니다. 따라서 다음 단계에서는 단일 색상 채널 만 가져 와서cmap'gray'로,vmin0으로,vmax가 255로 설정된 plt.imshow() 방식으로만 영상을 표시하면 된다.

마지막으로show()메서드를 사용하여 이미지를 회색조로 표시하는 창을 표시합니다. 위의 스크립트를 실행하려면 현재 작업 디렉토리에lena.jpg가 있어야합니다.

하나의 색상 채널 만 사용하는 것은 RGB 이미지를 그레이 스케일 이미지로 변환하는 적절한 방법이 아닙니다. 변환을보다 효율적으로 만드는 특정 알고리즘이 있기 때문입니다. 이러한 알고리즘은 사용 가능한 거의 모든 인기있는 이미지 처리 라이브러리에서 구현됩니다. 아래에서는 PIL을 사용한 예를 보여줍니다.

import numpy as np
import matplotlib.pyplot as plt
from PIL import Image

image = Image.open("lena.jpg")
gray_image = image.convert("L")
gray_image_array = np.asarray(gray_image)
plt.imshow(gray_image_array, cmap="gray", vmin=0, vmax=255)
plt.show()

출력:

이미지 모듈을 사용하여 그레이 스케일로 Matplotlib 디스플레이 이미지

여기서는open()함수를 사용하여 현재 작업 디렉토리에서lena.jpg 이미지를 읽은 다음'L'을 인수로 사용하여convert()메서드를 사용하여 이미지를 회색조로 변환합니다. 그런 다음 회색조 이미지를 NumPy 배열로 변환하고imshow()메서드를 사용하여 이미지를 표시합니다.

작가: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

관련 문장 - Matplotlib Images