体动选取区域的判别尚未做的很完整,选中多个已有的体动的区域时可能会出现问题
This commit is contained in:
@ -6,7 +6,10 @@
|
|||||||
|
|
||||||
每个功能运行时,若./Config目录下不存在该功能对应的yaml配置文件,则程序将创建一份默认的配置文件。配置文件的内容主要涉及一些对应功能的界面默认初始值的设置,此配置文件可以根据用户需要自行修改,或是在修改了相应参数后,在导入设置界面中单击“确定”即可保存相关参数到yaml文件中。
|
每个功能运行时,若./Config目录下不存在该功能对应的yaml配置文件,则程序将创建一份默认的配置文件。配置文件的内容主要涉及一些对应功能的界面默认初始值的设置,此配置文件可以根据用户需要自行修改,或是在修改了相应参数后,在导入设置界面中单击“确定”即可保存相关参数到yaml文件中。
|
||||||
|
|
||||||
|
## TODO LIST:
|
||||||
|
1、根据选定区域获取峰值时,将绘制的区域设置为有上限和下限的矩形,根据矩形获取到的横纵区域来计算峰值
|
||||||
|
|
||||||
|
2、体动选取区域的判别尚未做的很完整,选中多个已有的体动的区域时可能会出现问题
|
||||||
|
|
||||||
## 1、主菜单
|
## 1、主菜单
|
||||||
|
|
||||||
|
|||||||
@ -9,6 +9,7 @@ from PySide6.QtWidgets import QMessageBox, QMainWindow, QApplication, QTableWidg
|
|||||||
from matplotlib import gridspec, patches
|
from matplotlib import gridspec, patches
|
||||||
from matplotlib.backends.backend_qt import NavigationToolbar2QT
|
from matplotlib.backends.backend_qt import NavigationToolbar2QT
|
||||||
from matplotlib.backends.backend_qtagg import FigureCanvasQTAgg
|
from matplotlib.backends.backend_qtagg import FigureCanvasQTAgg
|
||||||
|
from numpy import array, append
|
||||||
from numpy.fft import fft, fftfreq
|
from numpy.fft import fft, fftfreq
|
||||||
from overrides import overrides
|
from overrides import overrides
|
||||||
from pandas import read_csv, DataFrame, concat
|
from pandas import read_csv, DataFrame, concat
|
||||||
@ -661,6 +662,8 @@ class MainWindow_artifact_label(QMainWindow):
|
|||||||
|
|
||||||
def __slot_btn_label__(self):
|
def __slot_btn_label__(self):
|
||||||
sender = self.sender()
|
sender = self.sender()
|
||||||
|
flag = False
|
||||||
|
select_row = array([]).astype(dict)
|
||||||
|
|
||||||
if sender == self.ui.pushButton_type_1:
|
if sender == self.ui.pushButton_type_1:
|
||||||
type = 1
|
type = 1
|
||||||
@ -683,15 +686,46 @@ class MainWindow_artifact_label(QMainWindow):
|
|||||||
for index, row in self.data.df_Artifact_a.iterrows():
|
for index, row in self.data.df_Artifact_a.iterrows():
|
||||||
value_startTime = row['startTime']
|
value_startTime = row['startTime']
|
||||||
value_endTime = row['endTime']
|
value_endTime = row['endTime']
|
||||||
|
|
||||||
|
# if ((value_endTime >= int(self.ui.lineEdit_start_time.text()) and value_startTime <= int(self.ui.lineEdit_start_time.text())) or
|
||||||
|
# (value_endTime >= int(self.ui.lineEdit_end_time.text()) and value_startTime <= int(self.ui.lineEdit_end_time.text())) or
|
||||||
|
# (value_startTime >= int(self.ui.lineEdit_start_time.text()) and value_endTime <= int(self.ui.lineEdit_end_time.text())) or
|
||||||
|
# (value_startTime <= int(self.ui.lineEdit_start_time.text()) and value_endTime >= int(self.ui.lineEdit_end_time.text()))):
|
||||||
|
# select_row = append(select_row, row)
|
||||||
|
|
||||||
|
# TODO:体动选取区域的判别尚未做的很完整,选中多个已有的体动的区域时可能会出现问题
|
||||||
|
if (type == 1 and row['type'] == 1) or (type == 2 and row['type'] == 2) or (type == 3 and row['type'] == 3):
|
||||||
|
if ((value_startTime > int(self.ui.lineEdit_start_time.text()) and (value_startTime - int(self.ui.lineEdit_end_time.text()) <= 2 * Config["InputConfig"]["UseFreq"])) or
|
||||||
|
(value_endTime < int(self.ui.lineEdit_end_time.text()) and (int(self.ui.lineEdit_end_time.text()) - value_endTime <= 2 * Config["InputConfig"]["UseFreq"]))):
|
||||||
|
reply = QMessageBox.question(self, '确认', '{}{},是否确认合并?'.format(Constants.ARTIFACT_LABEL_MERGE, row['number']), QMessageBox.Yes | QMessageBox.No,
|
||||||
|
QMessageBox.No)
|
||||||
|
if reply == QMessageBox.Yes:
|
||||||
|
self.data.df_Artifact_a.loc[self.data.df_Artifact_a['number'] == row['number'],
|
||||||
|
['number', 'type', 'startTime', 'endTime']] = [
|
||||||
|
int(row['number']),
|
||||||
|
int(type),
|
||||||
|
int(self.ui.lineEdit_start_time.text()) if int(self.ui.lineEdit_start_time.text()) < int(row['startTime']) else int(row['startTime']),
|
||||||
|
int(self.ui.lineEdit_end_time.text()) if int(self.ui.lineEdit_end_time.text()) > int(row['endTime']) else int(row['endTime'])
|
||||||
|
]
|
||||||
|
new_row = {'number': int(row['number']),
|
||||||
|
'type': int(type),
|
||||||
|
'startTime': int(self.ui.lineEdit_start_time.text()),
|
||||||
|
'endTime': int(self.ui.lineEdit_end_time.text())}
|
||||||
|
flag = True
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
return
|
||||||
if value_startTime <= int(self.ui.lineEdit_end_time.text()) and int(
|
if value_startTime <= int(self.ui.lineEdit_end_time.text()) and int(
|
||||||
self.ui.lineEdit_start_time.text()) <= value_endTime:
|
self.ui.lineEdit_start_time.text()) <= value_endTime:
|
||||||
PublicFunc.msgbox_output(self, f"{Constants.ARTIFACT_LABEL_OVERLAPPING}{row['number']}", Constants.MSGBOX_TYPE_ERROR)
|
PublicFunc.msgbox_output(self, f"{Constants.ARTIFACT_LABEL_OVERLAPPING}{row['number']}", Constants.MSGBOX_TYPE_ERROR)
|
||||||
return
|
return
|
||||||
new_row = {'number': int(len(self.data.df_Artifact_a) + 1),
|
|
||||||
'type': int(type),
|
if not flag:
|
||||||
'startTime': int(self.ui.lineEdit_start_time.text()),
|
new_row = {'number': int(len(self.data.df_Artifact_a) + 1),
|
||||||
'endTime': int(self.ui.lineEdit_end_time.text())}
|
'type': int(type),
|
||||||
self.data.df_Artifact_a = concat([self.data.df_Artifact_a, DataFrame([new_row])], ignore_index=True)
|
'startTime': int(self.ui.lineEdit_start_time.text()),
|
||||||
|
'endTime': int(self.ui.lineEdit_end_time.text())}
|
||||||
|
self.data.df_Artifact_a = concat([self.data.df_Artifact_a, DataFrame([new_row])], ignore_index=True)
|
||||||
sorted_part = self.data.df_Artifact_a[['type', 'startTime', 'endTime']].sort_values(by='startTime').reset_index(
|
sorted_part = self.data.df_Artifact_a[['type', 'startTime', 'endTime']].sort_values(by='startTime').reset_index(
|
||||||
drop=True)
|
drop=True)
|
||||||
self.data.df_Artifact_a[['type', 'startTime', 'endTime']] = sorted_part
|
self.data.df_Artifact_a[['type', 'startTime', 'endTime']] = sorted_part
|
||||||
|
|||||||
@ -320,6 +320,7 @@ class Constants:
|
|||||||
ARTIFACT_LABEL_RECOVER_SCALE: str = "尺度恢复"
|
ARTIFACT_LABEL_RECOVER_SCALE: str = "尺度恢复"
|
||||||
ARTIFACT_LABEL_MISS_ARGS: str = "打标参数未填写"
|
ARTIFACT_LABEL_MISS_ARGS: str = "打标参数未填写"
|
||||||
ARTIFACT_LABEL_OVERLAPPING: str = "当前所打标的片段存在重合,重合片段序号:"
|
ARTIFACT_LABEL_OVERLAPPING: str = "当前所打标的片段存在重合,重合片段序号:"
|
||||||
|
ARTIFACT_LABEL_MERGE: str = "当前所打标的片段距离附近片段不到2秒,片段序号:"
|
||||||
ARTIFACT_LABEL_DELETE_ARTIFACT_SUCCESSFULLY: str = "体动被删除"
|
ARTIFACT_LABEL_DELETE_ARTIFACT_SUCCESSFULLY: str = "体动被删除"
|
||||||
ARTIFACT_LABEL_DELETE_ARTIFACT_FAILURE: str = "需要被删除的体动不存在"
|
ARTIFACT_LABEL_DELETE_ARTIFACT_FAILURE: str = "需要被删除的体动不存在"
|
||||||
ARTIFACT_LABEL_ACTION_LABEL: str = f"标注体动({ConfigParams.ARTIFACT_LABEL_ACTION_LABEL_ARTIFACT_SHORTCUT_KEY})"
|
ARTIFACT_LABEL_ACTION_LABEL: str = f"标注体动({ConfigParams.ARTIFACT_LABEL_ACTION_LABEL_ARTIFACT_SHORTCUT_KEY})"
|
||||||
|
|||||||
Reference in New Issue
Block a user