87 lines
3.5 KiB
Python
87 lines
3.5 KiB
Python
|
|
from ecg_peaks_val import ecg_peaks_val
|
|
(P_peaks, Q_peaks, R_peaks, S_peaks, T_peaks,
|
|
P_onsets, P_offsets, T_onsets, T_offsets,
|
|
P_peaks_values, Q_peaks_values, R_peaks_values, S_peaks_values, T_peaks_values,
|
|
P_onsets_values, P_offsets_values, T_onsets_values, T_offsets_values,
|
|
PQ_baseline) = ecg_peaks_val()
|
|
|
|
from ecg_calculate_areas import ecg_areas_calculate
|
|
ecg_areas, P_areas, T_areas, QRS_areas = ecg_areas_calculate()
|
|
|
|
#--------------------------------------------------------------------------------------------------------
|
|
#--------------------------------------------------------------------------------------------------------
|
|
#--------------------------------------------------------------------------------------------------------
|
|
#--------------------------------------------------------------------------------------------------------
|
|
#------------------------ 计算比值 ------------------------------------
|
|
#--------------------------------------------------------------------------------------------------------
|
|
#--------------------------------------------------------------------------------------------------------
|
|
#--------------------------------------------------------------------------------------------------------
|
|
#--------------------------------------------------------------------------------------------------------
|
|
|
|
def ratio_calculate():
|
|
|
|
# 创建一个存储波峰纵坐标的字典
|
|
peaks_values = {
|
|
"P_peaks_values": P_peaks_values,
|
|
"Q_peaks_values": Q_peaks_values,
|
|
"R_peaks_values": R_peaks_values,
|
|
"S_peaks_values": S_peaks_values,
|
|
"T_peaks_values": T_peaks_values,
|
|
"P_onset_values": P_onsets_values,
|
|
"P_offset_values": P_offsets_values,
|
|
"T_onset_values": T_onsets_values,
|
|
"T_offset_values": T_offsets_values,
|
|
}
|
|
|
|
|
|
# 初始化一个空字典来存储峰值比值
|
|
peak_ratios = {}
|
|
|
|
# 计算每对波峰的比值
|
|
for start_label, start_values in peaks_values.items():
|
|
for end_label, end_values in peaks_values.items():
|
|
# 避免重复计算相同的比值
|
|
if start_label != end_label:
|
|
ratio_label = f"{start_label}/{end_label}"
|
|
ratio_values_1 = [
|
|
start_values[i] / end_values[i] if end_values[i] != 0 else 0 # 或其他默认值
|
|
for i in range(min(len(start_values), len(end_values)))
|
|
]
|
|
peak_ratios[ratio_label] = ratio_values_1
|
|
|
|
|
|
#输出每对波峰的比值
|
|
# for key, value in peak_ratios.items():
|
|
# print(f"{key} 的峰值比值:", value)
|
|
|
|
|
|
# 创建一个存储面积的字典
|
|
areas_values = {
|
|
"ecg_areas": ecg_areas,
|
|
"P_areas": P_areas,
|
|
"T_areas": T_areas,
|
|
"QRS_areas": QRS_areas,
|
|
|
|
}
|
|
|
|
# 初始化一个空字典来存储面积比值
|
|
areas_ratios = {}
|
|
|
|
# 计算每对波峰的比值
|
|
for start_label, start_values in areas_values.items():
|
|
for end_label, end_values in areas_values.items():
|
|
# 避免重复计算相同的比值
|
|
if start_label != end_label:
|
|
ratio_label = f"{start_label}/{end_label}"
|
|
ratio_values_2 = [
|
|
start_values[i] / end_values[i] if end_values[i] != 0 else 0 # 或其他默认值
|
|
for i in range(min(len(start_values), len(end_values)))
|
|
]
|
|
areas_ratios[ratio_label] = ratio_values_2
|
|
|
|
return peak_ratios, areas_ratios
|
|
|
|
if __name__ == "__main__":
|
|
ratio_calculate()
|