MotionTracker

Lacak pergeseran latar antara bingkai layar dengan pencocokan beberapa area OpenCV asli. Ini tidak mendeteksi pemain atau menentukan posisi pada atlas. Kecualikan HUD dan karakter; tangani zoom game di luar pelacak dengan pencocokan template dan skala. Dugaan zoom atau rotasi menghasilkan LOST, bukan perkiraan zoom. Pembuatan tidak menangkap bingkai; maksimal 16 tracker terbuka per flow.

Sintaks

MotionTracker(region=None, exclude=None, max_displacement=80, max_gap_ms=850, max_frame_age_ms=250)

Parameter konstruktor

NamaDeskripsi
regionRegion | None
Persegi pelacakan dalam piksel layar, seluruhnya di dalam layar saat ini, dengan lebar dan tinggi positif serta terbatas. None memilih seluruh layar. Koordinat dibekukan saat dibuat. Area yang terlalu kecil atau sempit menimbulkan kesalahan; pilih area yang lebih besar.
Opsional · Posisi atau nama
Default: None
excludelist | tuple | None
Daftar Region yang dikecualikan, dipotong sesuai area pelacakan. Lebar dan tinggi tiap area harus positif dan terbatas; koordinat dibekukan saat dibuat. None tidak mengecualikan apa pun. Maksimal 32 Region dapat dikecualikan.
Opsional · Posisi atau nama
Default: None
max_displacementNumber (1..256)
Pergeseran terbatas maksimum per sumbu dalam piksel layar; default 80.
Opsional · Posisi atau nama
Default: 80
max_gap_msNumber (1..5000)
Jeda maksimum antar bingkai sebagai bilangan bulat milidetik; default 850.
Opsional · Posisi atau nama
Default: 850
max_frame_age_msNumber (1..5000)
Usia maksimum bingkai sebagai bilangan bulat milidetik; default 250.
Opsional · Posisi atau nama
Default: 250

Nilai yang dikembalikan

Contoh

# Lacak gerakan latar antara bingkai yang ditangkap
tracker = MotionTracker()
first = tracker.update()
wait(100)
result = tracker.update()
if result.status == "TRACKED":
    print(result.dx, result.dy)
tracker.close()

Metode

3 metode

MotionTracker.update

Baca bingkai tangkapan saat ini dan kembalikan hasil gerak. Penangkapan layar harus sudah mendapat persetujuan dan siap. INITIALIZED membuat acuan; TRACKED melaporkan pergeseran yang diterima; STALE mempertahankan acuan; LOST menghapus kontinuitas agar bingkai baru yang valid berikutnya memulai ulang. Memanggil setelah close menimbulkan kesalahan. STALE berarti bingkai duplikat, dari masa depan, atau sudah terlalu lama sebelum diproses dan mempertahankan acuan. Jika bingkai menjadi terlalu lama saat diproses atau terjadi Pause sebelum penyerahan, hasilnya LOST dengan reason processing_frame_too_old dan kontinuitas dihapus.

Sintaks

tracker.update()

Nilai yang dikembalikan

Contoh

Belum didokumentasikan

MotionTracker.reset

Hapus acuan tanpa menutup pelacak. Memanggil setelah close menimbulkan kesalahan.

Sintaks

tracker.reset()

Nilai yang dikembalikan

None

Contoh

Belum didokumentasikan

MotionTracker.close

Lepaskan pelacak; aman dipanggil berulang. Handle juga dilepas saat macro atau flow selesai, dihentikan, atau gagal. Handle dapat digunakan ulang antar action dalam executor yang sama dan terisolasi dari flow lain.

Sintaks

tracker.close()

Nilai yang dikembalikan

None

Contoh

Belum didokumentasikan