两张图片AUC、ACC、SEN、SPE、F1计算代码
时间: 2023-07-03 16:12:17 浏览: 412
以下是基于Python的计算两张图片AUC、ACC、SEN、SPE、F1的代码示例:
import numpy as np
import cv2
# 读取两张图片
img1 = cv2.imread('path/to/image1.jpg', 0)
img2 = cv2.imread('path/to/image2.jpg', 0)
# 计算AUC
def calc_auc(img1, img2):
img1 = img1.ravel()
img2 = img2.ravel()
pos = img1[img2 == 255]
neg = img1[img2 == 0]
n_pos = len(pos)
n_neg = len(neg)
auc = 0
for i in range(n_pos):
for j in range(n_neg):
if pos[i] > neg[j]:
auc += 1
elif pos[i] == neg[j]:
auc += 0.5
auc /= (n_pos * n_neg)
return auc
# 计算ACC、SEN、SPE、F1
def calc_metrics(img1, img2):
TP = np.sum(np.logical_and(img1 == 255, img2 == 255))
TN = np.sum(np.logical_and(img1 == 0, img2 == 0))
FP = np.sum(np.logical_and(img1 == 255, img2 == 0))
FN = np.sum(np.logical_and(img1 == 0, img2 == 255))
acc = (TP + TN) / (TP + TN + FP + FN)
sen = TP / (TP + FN)
spe = TN / (TN + FP)
f1 = 2 * TP / (2 * TP + FP + FN)
return acc, sen, spe, f1
# 输出结果
auc = calc_auc(img1, img2)
acc, sen, spe, f1 = calc_metrics(img1, img2)
print('AUC:', auc)
print('ACC:', acc)
print('SEN:', sen)
print('SPE:', spe)
print('F1:', f1)
需要注意的是,以上代码中假定输入的两张图片都是灰度图像,且像素值只有0和255两种,如果是彩色图像或者像素值有多种取值,需要进行适当的修改。
相关推荐













