-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
25 lines (20 loc) · 871 Bytes
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
from image_similarity import load_images_from_folder, extract_features
from image_similarity import create_vocabulary, extract_bow_histogram
from image_similarity import cluster_images, group_images_by_cluster
from image_similarity import print_clusters, save_clusters
def main():
import sys
if len(sys.argv) != 2:
print("Usage: python main.py <folder_path>")
return
folder_path = sys.argv[1]
images, filenames = load_images_from_folder(folder_path)
all_descriptors, descriptors_list = extract_features(images)
kmeans = create_vocabulary(all_descriptors)
histograms = extract_bow_histogram(descriptors_list, kmeans)
labels = cluster_images(histograms)
clusters = group_images_by_cluster(labels, filenames)
print_clusters(clusters)
save_clusters(clusters, folder_path)
if __name__ == "__main__":
main()