計算dice系數,用於圖像分割之后的精度檢測python


只計算單個模板圖片和一堆測試圖片

import cv2
import os
import numpy as np
path = './dice/'
files = os.listdir(path)
s2 = cv2.imread("./guanfangyanmo/022.png", 0)# 模板
row, col = s2.shape[0], s2.shape[1]
d = []
for file in files:
    s1 = cv2.imread(path+file, 0)# 讀取配准后圖像
    print(file)
    s = []
    for r in range(row - 10):
        for c in range(col - 10):
            if s1[r][c] == s2[r][c]:# 計算圖像像素交集
                s.append(s1[r][c])
    m1 = np.linalg.norm(s)
    m2 = np.linalg.norm(s1.flatten()) + np.linalg.norm(s2.flatten())
    d.append(2*m1/m2)
#     print(2*m1/m2)
print(d)

計算兩個文件夾的圖片

import cv2
import os
import numpy as np

for i in range(38, 40):
    s2 = cv2.imread("./dice/" + str(i) + ".png", 0)  # 模板
    row, col = s2.shape[0], s2.shape[1]
    s1 = cv2.imread("./dice2/" + str(i) + ".jpg", 0)  # 讀取配准后圖像
    d = []
    s = []
    for r in range(row):
        for c in range(col):
            if s1[r][c] == s2[r][c]:  # 計算圖像像素交集
                s.append(s1[r][c])
    m1 = np.linalg.norm(s)
    m2 = np.linalg.norm(s1.flatten()) + np.linalg.norm(s2.flatten())
    d.append(2*m1/m2)
    msg = "這是第{}張圖的dice系數".format(i) + str(2 * m1 / m2)
    # print(2*m1/m2)
    print(msg)
# print(d)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM