图像分割指标计算python
时间: 2023-07-08 15:27:25 浏览: 130
图像分割的指标有很多种,其中常用的有Jaccard Index、Dice Coefficient、Precision、Recall、F1 Score等。以下是Python实现这些指标的示例代码:
Jaccard Index:
```python
def jaccard_index(true_mask, pred_mask):
intersection = np.logical_and(true_mask, pred_mask)
union = np.logical_or(true_mask, pred_mask)
return intersection.sum() / union.sum()
```
Dice Coefficient:
```python
def dice_coefficient(true_mask, pred_mask):
intersection = np.logical_and(true_mask, pred_mask)
return 2. * intersection.sum() / (true_mask.sum() + pred_mask.sum())
```
Precision:
```python
def precision(true_mask, pred_mask):
true_positive = np.logical_and(true_mask, pred_mask)
false_positive = np.logical_and(np.logical_not(true_mask), pred_mask)
return true_positive.sum() / (true_positive.sum() + false_positive.sum())
```
Recall:
```python
def recall(true_mask, pred_mask):
true_positive = np.logical_and(true_mask, pred_mask)
false_negative = np.logical_and(true_mask, np.logical_not(pred_mask))
return true_positive.sum() / (true_positive.sum() + false_negative.sum())
```
F1 Score:
```python
def f1_score(true_mask, pred_mask):
p = precision(true_mask, pred_mask)
r = recall(true_mask, pred_mask)
return 2. * p * r / (p + r)
```
这些函数都接受两个二值化的mask作为输入,并返回相应的指标值。可以根据自己的需要选择合适的指标函数。