def test_similar():
from itertools import combinations
from collections import defaultdict
from heapq import heappush
def sim1(img1, img2):
h, w, d = img1.shape
total = h*w*d
diff = cv2.absdiff(img1, img2)
num = (diff<10).sum()
return num*1.0/total
names = [os.path.join('scene', c) for c in os.listdir('scene')]
imgs = dict(zip(names, map(cv2.imread, names)))
diffs = defaultdict(list)
for name1, name2 in combinations(names, 2):
img1, img2 = imgs[name1], imgs[name2]
similarity = sim1(img1, img2)
# print 'diff', name1, name2, 'result is:', similarity
heappush(diffs[name1], (-similarity, name2))
heappush(diffs[name2], (-similarity, name1))
for k, v in diffs.iteritems():
print k, v[0][1], -v[0][0]
评论列表
文章目录