-
Notifications
You must be signed in to change notification settings - Fork 6
/
parcurgere_director.py
83 lines (67 loc) · 1.91 KB
/
parcurgere_director.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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#!/usr/bin/python
import os, sys
from os import walk
from skimage.measure import structural_similarity as ssim
import matplotlib.pyplot as plt
import numpy
import cv2
from PIL import Image
import shutil
path_originals = "toresize/" #folderul cu imaginile de comparat(in arhiva o sa fie gol)
path_to_write = "resized/" #folderul unde punem pozele redimensionate(il stergem dupa ce terminam )
dirs = os.listdir( path_originals )
if os.path.isdir('resized/') == False:
try:
os.makedirs('resized/')
except OSError, e:
if e.errno != 17:
raise
# time.sleep might help here
pass
def resize():
for item in dirs: #facem resize la 32 pe 32
if os.path.isfile(path_originals + item):
im = Image.open(path_originals + item)
f, e = os.path.splitext(path_to_write+item)
imResize = im.resize((32,32), Image.ANTIALIAS)
imResize.convert("RGB").save(f + 'resized.jpg')
def compare_images(imageA, imageB):
s = ssim(imageA, imageB)
return s*100
def execute(ID1, ID2):
path1 = "resized/" + str(ID1)
path2 = "resized/" + str(ID2)
poza1 = cv2.imread(path1)
poza2 = cv2.imread(path2)
# convert the images to grayscale
poza1 = cv2.cvtColor(poza1, cv2.COLOR_BGR2GRAY)
poza2 = cv2.cvtColor(poza2, cv2.COLOR_BGR2GRAY)
# compare the images
return compare_images(poza1, poza2)
resize()
path = "resized/"
files = os.listdir(path)
g = open("adev.csv",'w')
i = 0
while i < len(files):
original = files[i]
original = original[:-11]
sim = ""
j = i + 1
while j < len(files):
x = execute(files[i],files[j] )
if x > 80.0 : #aici setam acuratetea,cu cat e mai mare,avem output mai bun
sim += ";" #dar si timpul creste substantial
sim += files[j]
sim = sim[:-11]
files.pop(j)
else:
j += 1
if sim != "":
original += sim
g.write(original)
g.write("\n")
i += 1
# f.close()
g.close()
shutil.rmtree('resized')