{1: [52896, 34525, 13422, 18945, 55787],
3: [66831, 32906, 44984, 18537, 51682],
6: [49239, 53087, 59521, 3221, 11184],
7: [6628, 30861, 15325, 64671, 51520],
0: [47524, 12454, 42290, 5301, 16277],
4: [48736, 6874, 49780, 25624, 25399],
2: [16923, 30581, 42236, 6380, 9681]}
Это словарь с изображениями классов 1,3,6,7,0,4 и 2. Элементы списка в каждом ключе представляют индекс изображения в массиве с именем x_data, который является массивом изображений.
Я пытаюсь найти структурное сходство между изображением в одном классе, а также изображениями из других классов.
((Например, сравнение изображения класса 1, индекс 52896 с изображением класса 1, индекс 18945, а также сравнение с классом 3, индексом 66831 и т. д.))
И я хочу сделать это для каждого изображения
Для структурного сходства я подумал использовать:
from skimage.metrics import structural_similarity as ssim
Но как выполнить акробатику Python для утверждения, выделенного жирным шрифтом. Пожалуйста помоги.
Кроме того, все ли изображения в массиве изображений имеют одинаковую форму? Можете ли вы опубликовать информацию о форме.
Да, конечно. Форма каждого изображения (64,64,3)
можете ли вы опубликовать небольшой пример желаемого формата вывода
Идентификатор изображения класса 1 52896, идентификатор изображения класса 1 34525, SSIM ....... Аналогично, идентификатор изображения класса 1 52896, идентификатор изображения класса 3 66831, SSIM ..... просто простые утверждения
Вы должны перебирать каждый класс, и в каждом классе вам придется перебирать каждый идентификатор. Теперь, поскольку вы хотите сравнить это с любым другим изображением, вам придется повторить это еще раз.
for c1 in img_classes:
for i1 in img_classes[c1]:
for c2 in img_classes:
for i2 in img_classes[c2]:
# Compare image i1 of class c1 with image i2 of class c2
val = ssim(images[i1], images[i2], multichannel=True)
print(f"Comparing image {i1:5d} of class {c1} with image {i2:5d} of class {c2} || SSIM :{val:.4f}")
Comparing image 47524 of class 0 with image 47524 of class 0 || SSIM :1.0000
Comparing image 47524 of class 0 with image 12454 of class 0 || SSIM :0.0111
Comparing image 47524 of class 0 with image 42290 of class 0 || SSIM :0.0431
Comparing image 47524 of class 0 with image 5301 of class 0 || SSIM :0.0237
Comparing image 47524 of class 0 with image 16277 of class 0 || SSIM :0.0302
Comparing image 47524 of class 0 with image 52896 of class 1 || SSIM :0.0179
Comparing image 47524 of class 0 with image 34525 of class 1 || SSIM :0.0316
Comparing image 47524 of class 0 with image 13422 of class 1 || SSIM :0.0217
Comparing image 47524 of class 0 with image 18945 of class 1 || SSIM :0.0186
Comparing image 47524 of class 0 with image 55787 of class 1 || SSIM :0.0180
Comparing image 47524 of class 0 with image 16923 of class 2 || SSIM :0.0123
Comparing image 47524 of class 0 with image 30581 of class 2 || SSIM :0.0165
Comparing image 47524 of class 0 with image 42236 of class 2 || SSIM :0.0122
Comparing image 47524 of class 0 with image 6380 of class 2 || SSIM :0.0400
Comparing image 47524 of class 0 with image 9681 of class 2 || SSIM :0.0173
Comparing image 47524 of class 0 with image 66831 of class 3 || SSIM :0.0180
Comparing image 47524 of class 0 with image 32906 of class 3 || SSIM :0.0178
Comparing image 47524 of class 0 with image 44984 of class 3 || SSIM :0.0121
Comparing image 47524 of class 0 with image 18537 of class 3 || SSIM :0.0112
Comparing image 47524 of class 0 with image 51682 of class 3 || SSIM :0.0208
Итак, в основном вы хотите найти структурное сходство изображения с любым другим изображением?