Попробовав больше, я нашел следующее решение, которое работает:
import numpy as np
from PIL import Image, ImageDraw
import math
import numpy.matlib as npm
def convert5Pointto8Point(cx_, cy_, w_, h_, a_):
theta = math.radians(a_)
bbox = npm.repmat([[cx_], [cy_]], 1, 5) + \
np.matmul([[math.cos(theta), math.sin(theta)],
[-math.sin(theta), math.cos(theta)]],
[[-w_ / 2, w_/ 2, w_ / 2, -w_ / 2, w_ / 2 + 8],
[-h_ / 2, -h_ / 2, h_ / 2, h_ / 2, 0]])
# add first point
x1, y1 = bbox[0][0], bbox[1][0]
# add second point
x2, y2 = bbox[0][1], bbox[1][1]
# add third point
#x3, y3 = bbox[0][4], bbox[1][4] # نوک پیکان برای به نمایشگذاری
# add forth point
x3, y3 = bbox[0][2], bbox[1][2]
# add fifth point
x4, y4 = bbox[0][3], bbox[1][3]
return [x1, y1, x2, y2, x3, y3, x4, y4]
img = Image.new('L', (width, height), 0)
polygon = convert5Pointto8Point(50, 100, 30, 10, -50)
ImageDraw.Draw(img).polygon(polygon, outline=value, fill=value)
plt.imshow(img)
plt.show()