omar87 commited on
Commit
690ada3
·
1 Parent(s): 7f07bc6

Upload 2 files

Browse files
Files changed (2) hide show
  1. app.py.txt +42 -0
  2. requirements.txt.txt +4 -0
app.py.txt ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import cv2
2
+ import numpy as np
3
+ from skimage.metrics import structural_similarity as ssim
4
+ import gradio as gr
5
+
6
+ # Function to calculate SSIM between two images
7
+ def calculate_similarity(img1, img2):
8
+ img1 = cv2.cvtColor(img1, cv2.COLOR_RGB2GRAY)
9
+ img2 = cv2.cvtColor(img2, cv2.COLOR_RGB2GRAY)
10
+ return ssim(img1, img2)
11
+
12
+ # Function to compute similarity scores for all images
13
+ def compute_similarity(target_image, image_list):
14
+ scores = []
15
+ for image in image_list:
16
+ similarity_score = calculate_similarity(target_image, image)
17
+ scores.append(similarity_score)
18
+ return scores
19
+
20
+ # Function to handle the Gradio interface
21
+ def image_similarity(target_image, image_list):
22
+ target_image = target_image.astype(np.uint8)
23
+ image_list = [image.astype(np.uint8) for image in image_list]
24
+ scores = compute_similarity(target_image, image_list)
25
+ results = list(zip(image_list, scores))
26
+ results.sort(key=lambda x: x[1], reverse=True) # Sort by similarity score
27
+ return [str(result) for result in results]
28
+
29
+ # Prepare Gradio interface
30
+ iface = gr.Interface(
31
+ fn=image_similarity,
32
+ inputs=[
33
+ gr.inputs.Image(type="numpy", label="Target Image"),
34
+ gr.inputs.Image(type="numpy", label="Image List")
35
+ ],
36
+ outputs="text",
37
+ title="Image Similarity Calculator",
38
+ description="Upload an image and a list of images. Get similarity scores."
39
+ )
40
+
41
+ # Launch the interface
42
+ iface.launch()
requirements.txt.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ gradio
2
+ skimage.metrics
3
+ numpy
4
+ cv2