Bot wizji komputerowej dla symulatora wyścigowego (Python / OpenCV)
Opracowanie autonomicznego bota pikselowego opartego na widzeniu komputerowym (Computer Vision) do automatyzacji idealnego startu w symulatorze wyścigowym. Program analizuje określoną strefę ekranu z wysoką częstotliwością (100+ FPS) i emuluje sprzętowe naciśnięcie/zwolnienie klawiszy z dokładnością do milisekund.
Zrealizowane rozwiązania techniczne:
1. Obejście Fullscreen Exclusive: Opracowano przezroczysty interfejs UI (Tkinter) z wymuszonym fokusowaniem dla wygodnego wizualnego wyróżnienia strefy skanowania nad grą, bez konieczności ręcznego wprowadzania współrzędnych.
2. Optyczny filtr od warunków atmosferycznych: Algorytm ignoruje szum wizualny (krople deszczu, kurz). Zastosowano rozmycie Gaussa (cv2.GaussianBlur) oraz sztywną binaryzację (cv2.threshold) — bot reaguje wyłącznie na masywne przesunięcia pikseli (startowy zryw).
3. Wielowątkowość: Przechwytywanie ekranu przez superszybkie API dxcam oraz przetwarzanie obrazów zostały przeniesione do osobnego wątku daemon, dzięki czemu GUI pozostaje w pełni responsywne.
4. Dynamiczne przypisywanie klawiszy: Globalne haki (keyboard) pozwalają użytkownikowi przypisywać dowolne klawisze (lub przyciski myszy) do sterowania botem „w locie”, z zachowaniem ustawień w config.json.
Stos technologii: Python, OpenCV, DXcam, Win32API, PyDirectInput, Tkinter, Nuitka.
#python #opencv #computervision #automation #bot #scripting #nuitka
Zrealizowane rozwiązania techniczne:
1. Obejście Fullscreen Exclusive: Opracowano przezroczysty interfejs UI (Tkinter) z wymuszonym fokusowaniem dla wygodnego wizualnego wyróżnienia strefy skanowania nad grą, bez konieczności ręcznego wprowadzania współrzędnych.
2. Optyczny filtr od warunków atmosferycznych: Algorytm ignoruje szum wizualny (krople deszczu, kurz). Zastosowano rozmycie Gaussa (cv2.GaussianBlur) oraz sztywną binaryzację (cv2.threshold) — bot reaguje wyłącznie na masywne przesunięcia pikseli (startowy zryw).
3. Wielowątkowość: Przechwytywanie ekranu przez superszybkie API dxcam oraz przetwarzanie obrazów zostały przeniesione do osobnego wątku daemon, dzięki czemu GUI pozostaje w pełni responsywne.
4. Dynamiczne przypisywanie klawiszy: Globalne haki (keyboard) pozwalają użytkownikowi przypisywać dowolne klawisze (lub przyciski myszy) do sterowania botem „w locie”, z zachowaniem ustawień w config.json.
Stos technologii: Python, OpenCV, DXcam, Win32API, PyDirectInput, Tkinter, Nuitka.
#python #opencv #computervision #automation #bot #scripting #nuitka