49 lines
1.0 KiB
Python
49 lines
1.0 KiB
Python
import abc
|
|
|
|
from image_prediction.info import Info
|
|
|
|
|
|
class SplitMapper(abc.ABC):
|
|
def __init__(self, wrapped: dict, keymap: dict):
|
|
self.wrapped = wrapped
|
|
self.keymap = keymap
|
|
|
|
def __getitem__(self, key):
|
|
return self.wrapped[self.keymap[key]]
|
|
|
|
def __setitem__(self, key, value):
|
|
self.wrapped[self.keymap[key]] = value
|
|
|
|
@property
|
|
def dim(self):
|
|
return self["dim"]
|
|
|
|
@dim.setter
|
|
def dim(self, value):
|
|
self["dim"] = value
|
|
|
|
@property
|
|
def c1(self):
|
|
return self["c1"]
|
|
|
|
@c1.setter
|
|
def c1(self, value):
|
|
self["c1"] = value
|
|
|
|
@property
|
|
def c2(self):
|
|
return self["c2"]
|
|
|
|
@c2.setter
|
|
def c2(self, value):
|
|
self["c2"] = value
|
|
|
|
|
|
class HorizontalSplitMapper(SplitMapper):
|
|
def __init__(self, wrapped: dict):
|
|
super().__init__(wrapped, {"dim": Info.WIDTH, "c1": Info.X1, "c2": Info.X2})
|
|
|
|
|
|
class VerticalMapper(SplitMapper):
|
|
def __init__(self, wrapped: dict):
|
|
super().__init__(wrapped, {"dim": Info.HEIGHT, "c1": Info.Y1, "c2": Info.Y2}) |