-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest2
81 lines (65 loc) · 2.96 KB
/
test2
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
import cv2
import time
import threading
veritabani_resim_sayisi = 15
esik_degeri = 0.4
# Benzer resimleri saklamak iin bir liste
#benzer_resimler = []
def benzerlik_q3(hedef_index, yeni_boyut, sonuc_saklayici):
try:
# Kodun geri kalan buraya gelecek
# Hedef resmi yükleyin ve belirlediğiniz boyuta ölçeklendirin
hedef_resim = cv2.imread(f'zz_bk{hedef_index}.jpg', cv2.IMREAD_GRAYSCALE)
hedef_resim = cv2.resize(hedef_resim, yeni_boyut)
# En yüksek benzerlik skorunu ve resmin adını saklamak için değişkenler
en_yuksek_benzerlik_isim = None
en_yuksek_benzerlik_skor = None
# Veritabanı resimleri üzerinde döngü oluşturun
for i in range(1, veritabani_resim_sayisi + 1):
veritabani_resmi = cv2.imread(f'z_bk{i}.jpg', cv2.IMREAD_GRAYSCALE)
veritabani_resmi = cv2.resize(veritabani_resmi, yeni_boyut)
sonuc = cv2.matchTemplate(veritabani_resmi, hedef_resim, cv2.TM_CCOEFF_NORMED)
_, max_val, _, _ = cv2.minMaxLoc(sonuc)
# Eşik değeri üzerindeki en benzer resmi saklayın ve aynı ID'yi atayın
if max_val > esik_degeri and (en_yuksek_benzerlik_skor is None or max_val > en_yuksek_benzerlik_skor):
en_yuksek_benzerlik_isim = f'z_bk{i}'
en_yuksek_benzerlik_skor = max_val
resim_id = i
if en_yuksek_benzerlik_isim:
sonuc_saklayici.append({
'resim': en_yuksek_benzerlik_isim,
'ID': resim_id
})
except Exception as e:
print(f'Hata olutu: {e}')
def main():
# Toplam işlem süresini ölçmek için başlangıç zamanı
start_time = time.time()
# İşlem için kullanılacak hedef resim sayısı
hedef_resim_sayisi = 15
# İşlem için kullanılacak yeni boyut
yeni_boyut = (50, 50)
# İş parçacıkları listesi
threads = []
# Benzer resimleri saklamak için bir liste
benzer_resimler = []
for hedef_index in range(1, hedef_resim_sayisi + 1):
# Her hedef resmi için bir iş parçacığı oluşturun ve başlatın
thread = threading.Thread(target=benzerlik_q3, args=(hedef_index, yeni_boyut, benzer_resimler))
thread.start()
threads.append(thread)
# Tüm iş parçacıklarının tamamlanmasını bekleyin
for thread in threads:
thread.join()
# Toplam işlem süresini hesaplayın ve yazdırın
end_time = time.time()
total_time = end_time - start_time
print(f"Toplam İşlem Süresi: {total_time} saniye")
# Benzer resimleri ve ID'lerini yaz
for benzer_resim in benzer_resimler:
print(f"Benzer Resim: {benzer_resim['resim']}, ID: {benzer_resim['ID']}")
# Benzer resimlerden elde edilen ID'leri resim_id_listesi olarak ekleyin
resim_id_listesi = [benzer_resim['ID'] for benzer_resim in benzer_resimler]
print("Resim ID'leri:", resim_id_listesi)
if __name__ == "__main__":
main()