39 lines
959 B
Python
39 lines
959 B
Python
import glob
|
|
import os
|
|
from typing import List
|
|
import numpy as np
|
|
|
|
|
|
class AnnotationRect:
|
|
"""Exercise 3.1"""
|
|
|
|
def __init__(self, x1, y1, x2, y2):
|
|
self.x1 = x1
|
|
self.x2 = x2
|
|
self.y1 = y1
|
|
self.y2 = y2
|
|
|
|
def area(self):
|
|
return (self.x2 - self.x1) * (self.y2 - self.y1)
|
|
|
|
def __array__(self) -> np.ndarray:
|
|
return np.array([self.x1, self.y1, self.x2, self.y2])
|
|
|
|
@staticmethod
|
|
def fromarray(arr: np.ndarray):
|
|
return AnnotationRect(arr[0], arr[1], arr[2], arr[3])
|
|
|
|
|
|
def read_groundtruth_file(path: str) -> List[AnnotationRect]:
|
|
"""Exercise 3.1b"""
|
|
annotationRects = []
|
|
with open(path, 'r') as file:
|
|
for line in file:
|
|
if line.strip():
|
|
values = line.strip().split()
|
|
annotationRects.append(AnnotationRect(float(values[0]), float(
|
|
values[1]), float(values[2]), float(values[3])))
|
|
return annotationRects
|
|
|
|
|