Hejka, ogarnąłem sobie skrypt wykrywający karty na ekranie i powiadamiający mnie o tym fakcie abym miał czas wykonać jakąś akcję.
Problem polega na tym że posiadam zbiór 150 zdjęć z kartami które chcę aby skrypt mnie informował. Mam to zrobione w pętli i niestety czas jaki potrzebuje program do sprawdzenia wszystkich fotek to około 36 sekund.
Czy jest jakiś sposób aby przyspieszyć wykonywanie pętli w pythonie?
Dodam że sam szukając pomysłów sam już przyspieszyłem z ponad minuty do 36 sekund używając opcji "confidence=0.8" oraz "grayscale=True" ale to wciąż jest za dużo. Obrazki mają po 5-6kb wagi więc bardzo malutko, wyciąłem ile się dało.
Trochę kodu z tej pętli:
for szukanyobrazek5 in stolik1:
try:
szukanyobrazek51 = pyautogui.locateOnScreen(szukanyobrazek5, confidence=0.8)
srodekobrazka5 = pyautogui.center(szukanyobrazek51)
if (srodekobrazka5.x in range(270, 370)) and (srodekobrazka5.y in range(300, 340)):
playsound('dzwieki/jestakcja.wav')
time.sleep(10)
break
else:
continue
except:
pass
Wyjaśnienie:
stolik1 posiada listę 150 obrazków które jeden po drugim szuka skrypt.
próbujemy znaleźć obrazek na ekranie, jeśli jest to środkujemy jego pozycję aby móc skorzystać z opcji "in range" aby skrypt nie szukał na całym ekranie tylko w określonym miejscu gdzie te karty mogą się pojawić.
jeśli znalazł któryś z obrazków to krzyczy w głośnikach "JEST AKCJA :)!" i robimy pauze na chwilę abym mógł wykonać odpowiednią akcję.
jeśli nie znalazł to kontynuujemy po to aby pętla wykonywała się dalej i bez końca dopóki znowu nie znajdzie jakiegoś obrazka
Pozdrawiam!