MotionTracker

Theo dõi độ tịnh tiến của nền giữa các khung hình bằng OpenCV với nhiều vùng mẫu. Khi tạo không chụp khung hình; mỗi flow được mở tối đa 16 tracker. Công cụ không nhận diện nhân vật hay định vị trên bản đồ. Hãy loại HUD và nhân vật; xử lý mức zoom của game bên ngoài bằng so khớp mẫu và tỷ lệ. Khi nghi có zoom hoặc xoay, kết quả là LOST, không phải ước lượng zoom.

Cú pháp

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

Tham số khởi tạo

TênMô tả
regionRegion | None
Vùng theo dõi tính bằng pixel màn hình, nằm hoàn toàn trong màn hình hiện tại, có chiều rộng và cao hữu hạn, dương. None chọn toàn màn hình. Tọa độ được cố định khi tạo.
Tùy chọn · Theo vị trí hoặc tên
Mặc định: None
excludelist | tuple | None
Danh sách hoặc tuple tối đa 32 Region cần loại, được cắt theo vùng theo dõi. Mỗi vùng có chiều rộng và cao hữu hạn, dương; tọa độ được cố định khi tạo. None không loại vùng nào.
Tùy chọn · Theo vị trí hoặc tên
Mặc định: None
max_displacementNumber (1..256)
Độ dịch chuyển hữu hạn tối đa trên mỗi trục, tính bằng pixel màn hình; mặc định 80.
Tùy chọn · Theo vị trí hoặc tên
Mặc định: 80
max_gap_msNumber (1..5000)
Khoảng cách tối đa giữa các khung hình, là số nguyên mili giây; mặc định 850.
Tùy chọn · Theo vị trí hoặc tên
Mặc định: 850
max_frame_age_msNumber (1..5000)
Tuổi tối đa của khung hình, là số nguyên mili giây; mặc định 250.
Tùy chọn · Theo vị trí hoặc tên
Mặc định: 250

Giá trị trả về

Ví dụ

# Theo dõi chuyển động của nền giữa các khung hình đã chụp
tracker = MotionTracker()
first = tracker.update()
wait(100)
result = tracker.update()
if result.status == "TRACKED":
    print(result.dx, result.dy)
tracker.close()

Phương thức

3 phương thức

MotionTracker.update

Đọc khung hình đã chụp hiện tại và trả kết quả chuyển động. Phiên chụp màn hình phải đã được đồng ý và sẵn sàng. INITIALIZED tạo mốc; TRACKED trả độ tịnh tiến được chấp nhận; STALE là khung hình trùng, ở tương lai hoặc đã quá cũ trước khi xử lý và giữ nguyên mốc. LOST xóa tính liên tục để khung hình mới hợp lệ tiếp theo khởi tạo lại. Nếu khung hình quá cũ trong lúc xử lý hoặc Pause xảy ra trước khi bàn giao, LOST có reason là processing_frame_too_old. Gọi sau close sẽ báo lỗi.

Cú pháp

tracker.update()

Giá trị trả về

Ví dụ

Chưa có trong tài liệu

MotionTracker.reset

Xóa mốc theo dõi nhưng vẫn có thể dùng tracker. Gọi sau close sẽ báo lỗi.

Cú pháp

tracker.reset()

Giá trị trả về

None

Ví dụ

Chưa có trong tài liệu

MotionTracker.close

Giải phóng tracker; có thể gọi lại an toàn. Handle cũng được giải phóng khi macro hoặc flow kết thúc, bị dừng hay gặp lỗi. Có thể dùng lại handle qua các action trong cùng executor; handle được tách biệt giữa các flow.

Cú pháp

tracker.close()

Giá trị trả về

None

Ví dụ

Chưa có trong tài liệu