本文主要是介绍使用OpenCV绘制两幅图验证DSC和IoU以及BCELoss的计算程序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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),
这篇关于使用OpenCV绘制两幅图验证DSC和IoU以及BCELoss的计算程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!