我有一张图片列表。最快的方法是将列表中的图像与similarity(imga,imgb)
分数进行比较,并将它们分组到一个字典中,在返回的相似度达到阈值后,将第一个项目作为关键字。你知道吗
示例:
ImgList = [img1, img2, img3,img4, img5,img6]
如果img1、img3的相似度得分为0.7(>;0.5)
如果img2、im4、img6的相似度为0.6(>;0.5)
Output = {img1:[img3], img2:[img4,img6], img5:[]}
我的方法(索引错误):
for i in ImgList:
for j in ImgList:
#compare code here
ImgList.remove(j)
编辑:
def get_sim(img1,img2):
(score, diff) = measure.compare_ssim(img1, img2, full=True)
return score
img1 = cv2.imread("1.png")
img2 = cv2.imread("2.png")
img3 = cv2.imread("3.png")
img4 = cv2.imread("4.png")
img5 = cv2.imread("5.png")
img6 = cv2.imread("6.png")
imgs = [img1,img2,img3,img4,img5,img6]
for i in imgs:
for j in imgs:
similarity = get_sim(i,j) # values in range 0 to 1
if(similarity>=0.5):
imgs.remove(j)
#Need to group i,j
没有任何额外的细节
创建一个函数,使用
similarity
函数创建一个高于阈值的列表,然后在字典中使用该函数。像这样:我以前的回答可能不符合你的要求,这可能有用:
你可以用列表理解的方式来写
相关问题 更多 >
编程相关推荐