TP 3
TP 3
import os
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
from scipy.spatial.distance import euclidean
import cv2
# Compute regularity
return 1 / (1 + coarseness + contrast + (1 - directionality))
# Display results
top_k = 10
print("Query Image:", image_query_path)
print("Query Features:", query_features)
plt.figure(figsize=(20, 10))
for i in range(min(top_k, len(similarities))):
image_path, score , features = similarities[i]
print(f"{i+1}. {image_path} - Score: {score:.4f} -\n {features}")
image = Image.open(image_path)
plt.subplot(2, top_k, i + 1)
plt.imshow(image, cmap='gray')
plt.title(f"Rank {i+1}\nScore: {score:.2f}")
plt.axis('off')
plt.tight_layout()
plt.show()
# Display results
top_k = 10
print("Query Image:", image_query_path)
print("Query Features:")
for name, value in zip(feature_names, query_features):
print(f" {name}: {value:.4f}")
plt.figure(figsize=(20, 10))
for i in range(min(top_k, len(similarities))):
image_path, score, features = similarities[i]
#print(f"\nRank {i+1}: {image_path}")
#print(f" Similarity Score: {score:.4f} {'(High)' if score > 1
else '(Low)'}")
#print(" Features:")
#for name, value in zip(feature_names, features):
# print(f" {name}: {value:.4f}")
image = Image.open(image_path)
plt.subplot(2, top_k, i + 1)
plt.imshow(image, cmap='gray')
plt.title(f"Rank {i+1}\nScore: {score:.2f}")
plt.axis('off')
plt.tight_layout()
plt.show()
#haralik test 2
import os
import numpy as np
from PIL import Image
import matplotlib.pyplot as plt
from skimage.feature import graycomatrix, graycoprops
# Compute GLCM
glcm = graycomatrix(reduced_image, [distance], [angle],
levels=levels, symmetric=True, normed=True)
# Display results
top_k = 10
plt.figure(figsize=(25, 5))
print("Query Image:", image_query_path)
for i in range(min(top_k, len(similarities))):
image_path, score = similarities[i]
print(f"Rank {i+1}: {image_path} | Similarity Score: {score:.4f}")
image = Image.open(image_path)
plt.subplot(1, top_k, i + 1)
plt.imshow(image, cmap='gray')
plt.title(f"Rank {i+1}\nScore: {score:.2f}")
plt.axis('off')
plt.tight_layout()
plt.show()
Query Image: C:/Users/Ahmed/Desktop/Master 2/irdm/tp3/base d'images
N°5/2774.jpg
Rank 1: C:/Users/Ahmed/Desktop/Master 2/irdm/tp3/base d'images
N°5/2774.jpg | Similarity Score: 0.0000
Rank 2: C:/Users/Ahmed/Desktop/Master 2/irdm/tp3/base d'images
N°5/2660.jpg | Similarity Score: 0.2593
Rank 3: C:/Users/Ahmed/Desktop/Master 2/irdm/tp3/base d'images
N°5/2729.jpg | Similarity Score: 0.4857
Rank 4: C:/Users/Ahmed/Desktop/Master 2/irdm/tp3/base d'images
N°5/2665.jpg | Similarity Score: 0.6311
Rank 5: C:/Users/Ahmed/Desktop/Master 2/irdm/tp3/base d'images
N°5/2763.jpg | Similarity Score: 0.6503
Rank 6: C:/Users/Ahmed/Desktop/Master 2/irdm/tp3/base d'images
N°5/3029.jpg | Similarity Score: 0.8215
Rank 7: C:/Users/Ahmed/Desktop/Master 2/irdm/tp3/base d'images
N°5/2841.jpg | Similarity Score: 0.9531
Rank 8: C:/Users/Ahmed/Desktop/Master 2/irdm/tp3/base d'images
N°5/2924.jpg | Similarity Score: 1.1248
Rank 9: C:/Users/Ahmed/Desktop/Master 2/irdm/tp3/base d'images
N°5/2978.jpg | Similarity Score: 1.1737
Rank 10: C:/Users/Ahmed/Desktop/Master 2/irdm/tp3/base d'images
N°5/2901.jpg | Similarity Score: 1.3823
QST 3 Gabor
import os
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
from scipy.spatial.distance import euclidean
import cv2
# Display results
top_k = 10
print("Query Image:", image_query_path)
print("Query Features:", query_features)
plt.figure(figsize=(20, 10))
for i in range(min(top_k, len(similarities))):
image_path, score = similarities[i]
print(f"{i+1}. {image_path} - Score: {score:.4f}")
image = Image.open(image_path)
plt.subplot(2, top_k, i + 1)
plt.imshow(image, cmap='gray')
plt.title(f"Rank {i+1}\nScore: {score:.2f}")
plt.axis('off')
plt.tight_layout()
plt.show()
# Display results
top_k = 10
print("Query Image:", image_query_path)
print("Query Features:", query_features)
plt.figure(figsize=(20, 10))
for i in range(min(top_k, len(similarities))):
image_path, score = similarities[i]
print(f"{i+1}. {image_path} - Score: {score:.4f}")
image = Image.open(image_path)
plt.subplot(2, top_k, i + 1)
plt.imshow(image, cmap='gray')
plt.title(f"Rank {i+1}\nScore: {score:.2f}")
plt.axis('off')
plt.tight_layout()
plt.show()
similarities_tamura.append((image_path, score_tamura,
features_tamura))
similarities_haralick.append((image_path, score_haralick,
features_haralick))
similarities_gabor.append((image_path, score_gabor,
features_gabor))
similarities_wavelet.append((image_path, score_wavelet,
features_wavelet))
plt.tight_layout()
plt.show()
QST1 HSV
Tamura
import os
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
from scipy.spatial.distance import euclidean
import cv2
query_features = [
tamura_roughness(v_channel),
tamura_linearity(v_channel),
tamura_regularity(v_channel),
tamura_coarseness(v_channel),
tamura_contrast(v_channel),
tamura_directionality(v_channel),
]
# List to store similarity scores
similarities = []
# Display results
top_k = 10
print("Query Image:", image_query_path)
print("Query Features:", query_features)
plt.figure(figsize=(20, 10))
for i in range(min(top_k, len(similarities))):
image_path, score, features = similarities[i]
print(f"{i+1}. {image_path} - Score: {score:.4f} - Features:
{features}")
image = Image.open(image_path)
plt.subplot(2, top_k, i + 1)
plt.imshow(image)
plt.title(f"Rank {i+1}\nScore: {score:.2f}")
plt.axis('off')
plt.tight_layout()
plt.show()
# Load query image as HSV and compute Haralick features on the Value
(V) channel
query_image = Image.open(image_query_path).convert("HSV")
query_array = np.array(query_image) # Convert to numpy array
v_channel = query_array[:, :, 2] # Extract the Value (V) channel
query_features = compute_haralick_features(v_channel)
# Display results
top_k = 10
print("Query Image:", image_query_path)
print("Query Features:")
for name, value in zip(feature_names, query_features):
print(f" {name}: {value:.4f}")
plt.figure(figsize=(20, 10))
for i in range(min(top_k, len(similarities))):
image_path, score, features = similarities[i]
#print(f"\nRank {i+1}: {image_path}")
#print(f" Similarity Score: {score:.4f}")
#print(" Features:")
#for name, value in zip(feature_names, features):
# print(f" {name}: {value:.4f}")
image = Image.open(image_path)
plt.subplot(2, top_k, i + 1)
plt.imshow(image, cmap='gray')
plt.title(f"Rank {i+1}\nScore: {score:.2f}")
plt.axis('off')
plt.tight_layout()
plt.show()
Query Image: C:/Users/Ahmed/Desktop/Master 2/irdm/tp3/base d'images
N°5/2774.jpg
Query Features:
Angular Second Moment (ASM): 0.0001
Contrast: 2108.8377
Correlation: 0.5862
Sum of Squares: Variance: 2547.8373
Inverse Difference Moment (IDM): 0.0360
Sum Average: 319.2288
Sum Variance: 8082.5116
Sum Entropy: 8.3205
Entropy: 13.5561
Difference Variance: 0.0000
Difference Entropy: 6.5003
Information Measure of Correlation 1: -0.1915
Information Measure of Correlation 2: 0.9712
gabor hsv
import os
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
from scipy.spatial.distance import euclidean
import cv2
# Display results
top_k = 10
print("Query Image:", image_query_path)
print("Query Features:", query_features)
plt.figure(figsize=(20, 10))
for i in range(min(top_k, len(similarities))):
image_path, score = similarities[i]
print(f"{i+1}. {image_path} - Score: {score:.4f}")
image = Image.open(image_path)
plt.subplot(2, top_k, i + 1)
plt.imshow(image, cmap='gray')
plt.title(f"Rank {i+1}\nScore: {score:.2f}")
plt.axis('off')
plt.tight_layout()
plt.show()
# Load query image as HSV and compute wavelet features on the Value
(V) channel
query_image = Image.open(image_query_path).convert("HSV")
query_array = np.array(query_image)
v_channel = query_array[:, :, 2] / 255.0 # Normalize the Value (V)
channel to [0, 1]
query_features = wavelet_features(v_channel)
# Display results
top_k = 10
print("Query Image:", image_query_path)
print("Query Features:", query_features)
plt.figure(figsize=(20, 10))
for i in range(min(top_k, len(similarities))):
image_path, score = similarities[i]
print(f"{i+1}. {image_path} - Score: {score:.4f}")
image = Image.open(image_path)
plt.subplot(2, top_k, i + 1)
plt.imshow(image, cmap='gray')
plt.title(f"Rank {i+1}\nScore: {score:.2f}")
plt.axis('off')
plt.tight_layout()
plt.show()
similarities_tamura.append((image_path, score_tamura,
features_tamura))
similarities_haralick.append((image_path, score_haralick,
features_haralick))
similarities_gabor.append((image_path, score_gabor,
features_gabor))
similarities_wavelet.append((image_path, score_wavelet,
features_wavelet))
plt.tight_layout()
plt.show()