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

Python Matplotlib로 이미지의 그리드 선 제거하는 방법

Matplotlib으로 이미지를 표시할 때 배경에 나타나는 그리드 선을 제거하고 싶은 경우가 있습니다. 그리드 선을 없애려면 다음 단계를 따르면 됩니다.

그리드 선 제거 절차

  • figure 크기 설정: 그림(figure)의 크기를 지정하고 서브플롯 주변 및 사이의 여백(padding)을 조정합니다.
  • 이미지 불러오기: 파일에서 이미지를 읽어옵니다. 이 예제에서는 OpenCV(cv2)를 사용합니다.
  • 색상 공간 변환: OpenCV는 기본적으로 BGR 순서로 이미지를 읽어오므로, RGB 순서로 변환해야 올바른 색상으로 표시됩니다.
  • 그리드 선 비활성화: plt.grid(False) 또는 ax.grid(False)를 호출하여 그리드 선을 제거합니다.
  • 이미지 출력: imshow() 메서드를 사용해 데이터를 2D 래스터(raster) 형태의 이미지로 화면에 표시합니다.
  • 그림 표시: show() 메서드로 최종 결과를 확인합니다.

예제 코드

from matplotlib import pyplot as plt
import cv2

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

img = cv2.imread('bird.jpg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

plt.grid(False)
plt.imshow(img)

plt.show()

코드 설명

rcParams를 통해 figure 크기를 7.50 × 3.50 인치로 설정하고, autolayout 옵션을 활성화하여 요소들이 자동으로 적절히 배치되도록 합니다. cv2.imread()로 'bird.jpg' 파일을 읽어온 뒤, cv2.cvtColor()COLOR_BGR2RGB 플래그를 사용해 색상 채널 순서를 BGR에서 RGB로 변환합니다.

핵심은 plt.grid(False) 부분입니다. Matplotlib은 기본적으로 축에 눈금과 함께 그리드가 표시될 수 있는데, 이 값을 False로 지정하면 이미지 위에 격자 무늬가 나타나지 않고 깔끔한 원본 이미지만 출력됩니다.

실행하면 그리드 선이 전혀 없는 깨끗한 새(bird) 이미지가 창에 표시됩니다.