Matplotlib 에서 이미지에 사각형을 그리는 방법

Jinku Hu 2023년1월30일
  1. Matplotlib 에서 사각형 그리기
  2. Matplotlib 에서 이미지에 사각형 그리기
Matplotlib 에서 이미지에 사각형을 그리는 방법

Matplotlib 에서 이미지 나 일반 도형에 사각형을 그려야 할 때 matplotlib.patchesrectangle 패치는 add_patch 메소드로 축에 추가되어야합니다.

matpotlib patch는 얼굴과 가장자리가있는 2 차원 아티스트입니다. 색깔. Matplotlib 에는 다음과 같은 ‘패치’가 있습니다.

  • Arc
  • Arrow
  • ArrowStyle
  • BoxStyle
  • Circle
  • CirclePolygon
  • ConnectionPatch
  • ConnectionStyle
  • Ellipse
  • FancyArrow
  • FancyArrowPatch
  • FancyBboxPatch
  • Patch
  • Path
  • PathPatch
  • Polygon
  • Rectangle
  • RegularPolygon
  • Shadow
  • Wedge

‘사각형’패치는 왼쪽 아래 모서리의 지정된 좌표와 지정된 너비와 높이로 사각형을 그립니다.

Rectangle(xy, width, height, angle=0.0, fill=True, **kwargs)

xy is a length-2 tuple to specify the coordinates of lower left corner of the rectangle to be drawn,

width 는 사각형의 너비입니다.

height는 사각형의 높이입니다.

angle 은 시계 반대 방향 각도입니다.

fill 은 사각형이 facecolor 로 채워질 지 여부를 지정합니다.

일부 유효한 ‘크 워그’는

  • edgecolor: 사각형 가장자리의 색
  • facecolor: 사각형의 채워진 색

Matplotlib 에서 사각형 그리기

import matplotlib.pyplot as plt
import matplotlib.patches as patches

fig, ax = plt.subplots()

ax.plot([1, 4], [1, 4])

ax.add_patch(
    patches.Rectangle((1, 1), 0.5, 0.5, edgecolor="blue", facecolor="red", fill=True)
)

plt.show()

사각형 패치는 생성자에 의해 생성됩니다.

patches.Rectangle((1, 1), 1, 2, edgecolor="blue", facecolor="red", fill=True)

왼쪽 하단의 좌표는(1, 1)이고, 너비는 1 이고 높이는 2 입니다.

가장자리 색상은 ‘파랑’으로 지정되며, 채움 색상은 ‘빨간색’으로 지정됩니다.

Axes 객체의 add_patch(P)메소드는 Patch-paxis 에 추가합니다.

Matplotlib_ 채워진 색으로 사각형 그리기

fillFalse 로 설정되어 있으면 facecolor 가 일부 색으로 지정되어 있어도 사각형이 채워지지 않습니다.

import matplotlib.pyplot as plt
import matplotlib.patches as patches

fig, ax = plt.subplots()

ax.plot([1, 4], [1, 4])

ax.add_patch(
    patches.Rectangle((1, 1), 1, 2, edgecolor="blue", facecolor="red", fill=False)
)

plt.show()

Matplotlib_ 채워진 색상이없는 사각형 그리기

Matplotlib 에서 이미지에 사각형 그리기

Matplotlib 에서 이미지에 사각형을 그릴 필요가 있다면, 위의 접근 방식과 비슷하지만 ‘축’핸들을 얻는 추가 단계가 있습니다.

import matplotlib.pyplot as plt
import matplotlib.patches as patches
from PIL import Image

im = Image.open("butterfly.jpg")

plt.imshow(im)

ax = plt.gca()

rect = patches.Rectangle((80, 10), 70, 100, linewidth=2, edgecolor="cyan", fill=False)

ax.add_patch(rect)

plt.show()

plt.imshow(im)는 이미지 butterfly.jpg 를 표시하고 gca가현재 축을 얻는 것을 의미하는 plt.gca()함수에 의해 Axes 의 핸들을 얻을 수 있습니다.

Matplotlib_ 이미지에 사각형 그리기

작가: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook