【发布时间】:2019-05-06 14:08:05
【问题描述】:
我有一个图像列表。将列表中的图像与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
【问题讨论】:
-
到目前为止,您在相似度得分方面做了哪些尝试,您能否举例说明您使用什么数据结构来保存相似度得分?
-
@DeveshKumarSingh 它是一个函数,它接收两张图像并根据它们的直方图相似度返回一个分数。
-
是的,您能否向我们展示一个该函数为您的图像列表输出的示例示例?
-
@DeveshKumarSingh 添加了附加代码
-
不是代码,是示例输出,当您运行代码时!我无法运行代码并猜测相似性,你能运行你拥有的代码,制作一个 6x6 2D 矩阵并将其添加到问题中吗?
标签: python list comparison