diff --git a/MOAFStat.py b/MOAFStat.py index 8aeabec..49f7b53 100644 --- a/MOAFStat.py +++ b/MOAFStat.py @@ -136,18 +136,19 @@ def process_autofocus_results(input_file, output_type="distance", group_size=30) # 计算误差、方向正确性等 print_with_timestamp("开始进行图像级数据处理") - # 计算绝对/带符号误差 - df_result["error_mean"] = np.abs(df_result["label"] - df_result["pred_mean"]) - df_result["error_median"] = np.abs(df_result["label"] - df_result["pred_median"]) - df_result["error_z_mean"] = np.abs(df_result["label"] - df_result["pred_z_mean"]) - df_result["error_z_median"] = np.abs(df_result["label"] - df_result["pred_z_median"]) - df_result["serror_mean"] = df_result["label"] - df_result["pred_mean"] - df_result["serror_median"] = df_result["label"] - df_result["pred_median"] - df_result["serror_z_mean"] = df_result["label"] - df_result["pred_z_mean"] - df_result["serror_z_median"] = df_result["label"] - df_result["pred_z_median"] - # 计算绝对/带符号误差景深比 df_result["dof"] = ((550.0 * df_result["rix"]) / (df_result["na"] ** 2)) + ((df_result["rix"] * 3450.0) / (df_result["mag"] * df_result["na"])) + + # 计算绝对/带符号误差/景深比 if output_type == "ratio": + df_result["error_mean"] = np.abs(df_result["label"] / df_result["dof"] - df_result["pred_mean"]) + df_result["error_median"] = np.abs(df_result["label"] / df_result["dof"] - df_result["pred_median"]) + df_result["error_z_mean"] = np.abs(df_result["label"] / df_result["dof"] - df_result["pred_z_mean"]) + df_result["error_z_median"] = np.abs(df_result["label"] / df_result["dof"] - df_result["pred_z_median"]) + df_result["serror_mean"] = df_result["label"] / df_result["dof"] - df_result["pred_mean"] + df_result["serror_median"] = df_result["label"] / df_result["dof"] - df_result["pred_median"] + df_result["serror_z_mean"] = df_result["label"] / df_result["dof"] - df_result["pred_z_mean"] + df_result["serror_z_median"] = df_result["label"] / df_result["dof"] - df_result["pred_z_median"] + df_result["error_ratio_mean"] = df_result["error_mean"] df_result["error_ratio_median"] = df_result["error_median"] df_result["error_ratio_z_mean"] = df_result["error_z_mean"] @@ -157,6 +158,15 @@ def process_autofocus_results(input_file, output_type="distance", group_size=30) df_result["serror_ratio_z_mean"] = df_result["serror_z_mean"] df_result["serror_ratio_z_median"] = df_result["serror_z_median"] else: + df_result["error_mean"] = np.abs(df_result["label"] - df_result["pred_mean"]) + df_result["error_median"] = np.abs(df_result["label"] - df_result["pred_median"]) + df_result["error_z_mean"] = np.abs(df_result["label"] - df_result["pred_z_mean"]) + df_result["error_z_median"] = np.abs(df_result["label"] - df_result["pred_z_median"]) + df_result["serror_mean"] = df_result["label"] - df_result["pred_mean"] + df_result["serror_median"] = df_result["label"] - df_result["pred_median"] + df_result["serror_z_mean"] = df_result["label"] - df_result["pred_z_mean"] + df_result["serror_z_median"] = df_result["label"] - df_result["pred_z_median"] + df_result["error_ratio_mean"] = df_result["error_mean"] / df_result["dof"] df_result["error_ratio_median"] = df_result["error_median"] / df_result["dof"] df_result["error_ratio_z_mean"] = df_result["error_z_mean"] / df_result["dof"] @@ -165,6 +175,7 @@ def process_autofocus_results(input_file, output_type="distance", group_size=30) df_result["serror_ratio_median"] = df_result["serror_median"] / df_result["dof"] df_result["serror_ratio_z_mean"] = df_result["serror_z_mean"] / df_result["dof"] df_result["serror_ratio_z_median"] = df_result["serror_z_median"] / df_result["dof"] + # 计算方向预测正确性 df_result["direction_mean"] = (df_result['label'] * df_result['pred_mean'] >= 0).astype(int) df_result["direction_median"] = (df_result['label'] * df_result['pred_median'] >= 0).astype(int)