Matplotlib 에서 이미지에 사각형을 그리는 방법
Matplotlib 에서 이미지 나 일반 도형에 사각형을 그려야 할 때 matplotlib.patches
의 rectangle
패치는 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
-p
를 axis
에 추가합니다.
fill
이 False
로 설정되어 있으면 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 에서 이미지에 사각형을 그릴 필요가 있다면, 위의 접근 방식과 비슷하지만 ‘축’핸들을 얻는 추가 단계가 있습니다.
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
의 핸들을 얻을 수 있습니다.
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