def find_paste_location(self, bbox, already_pasted_bboxes):
while True:
x_derivation = random.gauss(0, self.variance) * (self.image_size // 2)
y_derivation = random.gauss(0, self.variance) * (self.image_size // 2)
center = Point(x=self.image_size // 2, y=self.image_size // 2)
bbox.left = max(min(center.x + x_derivation, self.image_size), 0)
bbox.top = max(min(center.y + y_derivation, self.image_size), 0)
if bbox.left + bbox.width > self.image_size:
bbox.left = self.image_size - bbox.width
if bbox.top + bbox.height > self.image_size:
bbox.top = self.image_size - bbox.height
if not any(intersects(bbox, box) for box in already_pasted_bboxes):
return bbox
评论列表
文章目录