1.创作灵感
很多小伙伴在玩深度学习模型的时候,需要计算Groudtruth和predict图的dsc、IOU以及BCELoss。这两个关键的指标的程序有很多种写法,今天使用OpenCV绘制两张已知分布的图像,计算其dsc、IOU以及BCELoss。
2、图像如图所示
在一个100×100的区域内,红色框范围为预测值,黑色框的范围是真实值。则TP、FP、TN、FN的分布如图所示。
3程序的编写
3.1 绘制图形,并保存程张量。
import torch import torch.nn as nn import cv2 as cv import numpy as np # 定义一个函数,填充绘制的轮廓 def fill_img(img): contours, hierarchy = cv.findContours(img, cv.RETR_LIST, cv.CHAIN_APPROX_NONE) area = [] for k in range(len(contours)): area.append(cv.contourArea(contours[k])) # 轮廓索引 max_idx = np.argsort(np.array(area)) # 按轮廓索引填充颜色 for idx in max_idx: # 填充轮廓 img = cv.drawContours(img, contours, idx, 255, cv.FILLED) return img# 创建一个黑色的图像 image1 = np.zeros((100, 100, 1),