del json
add qt watermark
This commit is contained in:
parent
380f27df7c
commit
b6fa30fb42
@ -27,6 +27,7 @@ class Adv(QMainWindow, Ui_MainWindow):
|
||||
self.graphicsView.setScene(self.s)
|
||||
self.grey = True
|
||||
self.scale = False
|
||||
self.watermark = True
|
||||
|
||||
def keyPressEvent(self, a0: QKeyEvent):
|
||||
t = a0.text()
|
||||
@ -35,6 +36,8 @@ class Adv(QMainWindow, Ui_MainWindow):
|
||||
self.grey = not self.grey
|
||||
case 's':
|
||||
self.scale = not self.scale
|
||||
case 't':
|
||||
self.watermark = not self.watermark
|
||||
|
||||
def on_key(self, key):
|
||||
# test for a specific key
|
||||
@ -64,6 +67,8 @@ class Adv(QMainWindow, Ui_MainWindow):
|
||||
h = msg.rfmat.m.shape[0]
|
||||
if self.grey:
|
||||
d2 = msg.rfmat.grey()
|
||||
if self.watermark:
|
||||
d2 = d2.watermark()
|
||||
qImg = QImage(
|
||||
d2.__bytes__(),
|
||||
w, h, w,
|
||||
@ -71,6 +76,8 @@ class Adv(QMainWindow, Ui_MainWindow):
|
||||
)
|
||||
else:
|
||||
d2 = msg.rfmat.pseudo_color()
|
||||
if self.watermark:
|
||||
d2 = d2.watermark()
|
||||
qImg = QImage(
|
||||
d2.__bytes__(),
|
||||
w, h, 3 * w,
|
||||
|
||||
@ -318,8 +318,8 @@ class RfMatMsg(HeaderByteMsg):
|
||||
self.rfmat = rfmat
|
||||
|
||||
super().__init__(dict(
|
||||
frame_meta=rfmat.frame_meta.json_str,
|
||||
seq_meta=rfmat.seq_meta.json_str,
|
||||
frame_meta=rfmat.frame_meta.name,
|
||||
seq_meta=rfmat.seq_meta.name,
|
||||
data_shape=rfmat.m.shape,
|
||||
dtype=str(rfmat.m.dtype),
|
||||
), rfmat.m.tobytes())
|
||||
@ -332,8 +332,8 @@ class RfMatMsg(HeaderByteMsg):
|
||||
mat = np.frombuffer(msg.data, dtype=dt).reshape(msg.header['data_shape'])
|
||||
rfmat = RfMat(
|
||||
mat,
|
||||
RfFrameMeta.from_json_str(msg.header['frame_meta']),
|
||||
RfSequenceMeta.from_json_str(msg.header['seq_meta']),
|
||||
RfFrameMeta.from_name(msg.header['frame_meta']),
|
||||
RfSequenceMeta.from_name(msg.header['seq_meta']),
|
||||
)
|
||||
return RfMatMsg(rfmat)
|
||||
|
||||
|
||||
@ -86,23 +86,6 @@ class RfMeta:
|
||||
|
||||
return c
|
||||
|
||||
@property
|
||||
def json_str(self):
|
||||
return json.dumps(self.__dict__)
|
||||
|
||||
@classmethod
|
||||
def from_json_str(clz, j: str):
|
||||
j = json.loads(j)
|
||||
meta = clz()
|
||||
for field in dataclasses.fields(clz):
|
||||
v = j[field.name]
|
||||
match v:
|
||||
case None:
|
||||
pass
|
||||
case _:
|
||||
meta.__setattr__(field.name, field.type(v))
|
||||
return meta
|
||||
|
||||
|
||||
@dataclass
|
||||
class RfFrameMeta(RfMeta):
|
||||
@ -147,34 +130,6 @@ class RfSequenceMeta(RfMeta):
|
||||
def d(self):
|
||||
return self.shape.__len__()
|
||||
|
||||
@property
|
||||
def json_str(self):
|
||||
d = dict()
|
||||
for field in dataclasses.fields(RfSequenceMeta):
|
||||
v = self.__getattribute__(field.name)
|
||||
match v:
|
||||
case self.RfSequenceMode():
|
||||
d[field.name] = v.name
|
||||
case _:
|
||||
d[field.name] = v
|
||||
return json.dumps(d)
|
||||
|
||||
@classmethod
|
||||
def from_json_str(clz, j: str):
|
||||
j = json.loads(j)
|
||||
meta = RfSequenceMeta()
|
||||
for field in dataclasses.fields(RfSequenceMeta):
|
||||
v = j[field.name]
|
||||
match field.name:
|
||||
case 'mode':
|
||||
meta.mode = RfSequenceMeta.RfSequenceMode[v]
|
||||
case _:
|
||||
if v is None:
|
||||
meta.__setattr__(field.name, None)
|
||||
else:
|
||||
meta.__setattr__(field.name, field.type(v))
|
||||
return meta
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
# r = RfSequenceMeta.from_name('asdasd1,S=(64 1501),M=PWI,U=30')
|
||||
|
||||
Loading…
Reference in New Issue
Block a user