mirror of
https://github.com/THU-MIG/yolov10.git
synced 2025-05-23 21:44:22 +08:00
Allow Annotator PIL.Image inputs (#8397)
This commit is contained in:
parent
0572b29445
commit
21088e3986
@ -112,12 +112,12 @@ class Annotator:
|
|||||||
|
|
||||||
def __init__(self, im, line_width=None, font_size=None, font="Arial.ttf", pil=False, example="abc"):
|
def __init__(self, im, line_width=None, font_size=None, font="Arial.ttf", pil=False, example="abc"):
|
||||||
"""Initialize the Annotator class with image and line width along with color palette for keypoints and limbs."""
|
"""Initialize the Annotator class with image and line width along with color palette for keypoints and limbs."""
|
||||||
assert im.data.contiguous, "Image not contiguous. Apply np.ascontiguousarray(im) to Annotator() input images."
|
|
||||||
non_ascii = not is_ascii(example) # non-latin labels, i.e. asian, arabic, cyrillic
|
non_ascii = not is_ascii(example) # non-latin labels, i.e. asian, arabic, cyrillic
|
||||||
self.pil = pil or non_ascii
|
input_is_pil = isinstance(im, Image.Image)
|
||||||
self.lw = line_width or max(round(sum(im.shape) / 2 * 0.003), 2) # line width
|
self.pil = pil or non_ascii or input_is_pil
|
||||||
|
self.lw = line_width or max(round(sum(im.size if input_is_pil else im.shape) / 2 * 0.003), 2)
|
||||||
if self.pil: # use PIL
|
if self.pil: # use PIL
|
||||||
self.im = im if isinstance(im, Image.Image) else Image.fromarray(im)
|
self.im = im if input_is_pil else Image.fromarray(im)
|
||||||
self.draw = ImageDraw.Draw(self.im)
|
self.draw = ImageDraw.Draw(self.im)
|
||||||
try:
|
try:
|
||||||
font = check_font("Arial.Unicode.ttf" if non_ascii else font)
|
font = check_font("Arial.Unicode.ttf" if non_ascii else font)
|
||||||
@ -129,6 +129,7 @@ class Annotator:
|
|||||||
if check_version(pil_version, "9.2.0"):
|
if check_version(pil_version, "9.2.0"):
|
||||||
self.font.getsize = lambda x: self.font.getbbox(x)[2:4] # text width, height
|
self.font.getsize = lambda x: self.font.getbbox(x)[2:4] # text width, height
|
||||||
else: # use cv2
|
else: # use cv2
|
||||||
|
assert im.data.contiguous, "Image not contiguous. Apply np.ascontiguousarray(im) to Annotator input images."
|
||||||
self.im = im if im.flags.writeable else im.copy()
|
self.im = im if im.flags.writeable else im.copy()
|
||||||
self.tf = max(self.lw - 1, 1) # font thickness
|
self.tf = max(self.lw - 1, 1) # font thickness
|
||||||
self.sf = self.lw / 3 # font scale
|
self.sf = self.lw / 3 # font scale
|
||||||
|
Loading…
x
Reference in New Issue
Block a user