只計算單個模板圖片和一堆測試圖片
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)