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.graphicsView.setScene(self.s)
|
||||||
self.grey = True
|
self.grey = True
|
||||||
self.scale = False
|
self.scale = False
|
||||||
|
self.watermark = True
|
||||||
|
|
||||||
def keyPressEvent(self, a0: QKeyEvent):
|
def keyPressEvent(self, a0: QKeyEvent):
|
||||||
t = a0.text()
|
t = a0.text()
|
||||||
@ -35,6 +36,8 @@ class Adv(QMainWindow, Ui_MainWindow):
|
|||||||
self.grey = not self.grey
|
self.grey = not self.grey
|
||||||
case 's':
|
case 's':
|
||||||
self.scale = not self.scale
|
self.scale = not self.scale
|
||||||
|
case 't':
|
||||||
|
self.watermark = not self.watermark
|
||||||
|
|
||||||
def on_key(self, key):
|
def on_key(self, key):
|
||||||
# test for a specific key
|
# test for a specific key
|
||||||
@ -64,6 +67,8 @@ class Adv(QMainWindow, Ui_MainWindow):
|
|||||||
h = msg.rfmat.m.shape[0]
|
h = msg.rfmat.m.shape[0]
|
||||||
if self.grey:
|
if self.grey:
|
||||||
d2 = msg.rfmat.grey()
|
d2 = msg.rfmat.grey()
|
||||||
|
if self.watermark:
|
||||||
|
d2 = d2.watermark()
|
||||||
qImg = QImage(
|
qImg = QImage(
|
||||||
d2.__bytes__(),
|
d2.__bytes__(),
|
||||||
w, h, w,
|
w, h, w,
|
||||||
@ -71,6 +76,8 @@ class Adv(QMainWindow, Ui_MainWindow):
|
|||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
d2 = msg.rfmat.pseudo_color()
|
d2 = msg.rfmat.pseudo_color()
|
||||||
|
if self.watermark:
|
||||||
|
d2 = d2.watermark()
|
||||||
qImg = QImage(
|
qImg = QImage(
|
||||||
d2.__bytes__(),
|
d2.__bytes__(),
|
||||||
w, h, 3 * w,
|
w, h, 3 * w,
|
||||||
|
|||||||
@ -318,8 +318,8 @@ class RfMatMsg(HeaderByteMsg):
|
|||||||
self.rfmat = rfmat
|
self.rfmat = rfmat
|
||||||
|
|
||||||
super().__init__(dict(
|
super().__init__(dict(
|
||||||
frame_meta=rfmat.frame_meta.json_str,
|
frame_meta=rfmat.frame_meta.name,
|
||||||
seq_meta=rfmat.seq_meta.json_str,
|
seq_meta=rfmat.seq_meta.name,
|
||||||
data_shape=rfmat.m.shape,
|
data_shape=rfmat.m.shape,
|
||||||
dtype=str(rfmat.m.dtype),
|
dtype=str(rfmat.m.dtype),
|
||||||
), rfmat.m.tobytes())
|
), rfmat.m.tobytes())
|
||||||
@ -332,8 +332,8 @@ class RfMatMsg(HeaderByteMsg):
|
|||||||
mat = np.frombuffer(msg.data, dtype=dt).reshape(msg.header['data_shape'])
|
mat = np.frombuffer(msg.data, dtype=dt).reshape(msg.header['data_shape'])
|
||||||
rfmat = RfMat(
|
rfmat = RfMat(
|
||||||
mat,
|
mat,
|
||||||
RfFrameMeta.from_json_str(msg.header['frame_meta']),
|
RfFrameMeta.from_name(msg.header['frame_meta']),
|
||||||
RfSequenceMeta.from_json_str(msg.header['seq_meta']),
|
RfSequenceMeta.from_name(msg.header['seq_meta']),
|
||||||
)
|
)
|
||||||
return RfMatMsg(rfmat)
|
return RfMatMsg(rfmat)
|
||||||
|
|
||||||
|
|||||||
@ -86,23 +86,6 @@ class RfMeta:
|
|||||||
|
|
||||||
return c
|
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
|
@dataclass
|
||||||
class RfFrameMeta(RfMeta):
|
class RfFrameMeta(RfMeta):
|
||||||
@ -147,34 +130,6 @@ class RfSequenceMeta(RfMeta):
|
|||||||
def d(self):
|
def d(self):
|
||||||
return self.shape.__len__()
|
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__':
|
if __name__ == '__main__':
|
||||||
# r = RfSequenceMeta.from_name('asdasd1,S=(64 1501),M=PWI,U=30')
|
# r = RfSequenceMeta.from_name('asdasd1,S=(64 1501),M=PWI,U=30')
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user