add qt watermark
This commit is contained in:
flandre 2025-04-13 17:24:19 +08:00
parent 380f27df7c
commit b6fa30fb42
3 changed files with 11 additions and 49 deletions

View File

@ -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,

View File

@ -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)

View File

@ -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')