ติดตามการเลื่อนของพื้นหลังระหว่างเฟรมหน้าจอด้วย OpenCV แบบหลายบริเวณ ไม่ตรวจจับผู้เล่นหรือหาตำแหน่งบนแผนที่ ให้ยกเว้น HUD และตัวละคร และจัดการซูมเกมภายนอกด้วยการจับคู่เทมเพลตและสเกล หากสงสัยว่ามีการซูมหรือหมุนจะได้ LOST ไม่ใช่ค่าประมาณซูม การสร้างไม่จับภาพ และแต่ละ flow เปิด tracker ได้ไม่เกิน 16 ตัว.
รูปแบบคำสั่ง
MotionTracker(region=None, exclude=None, max_displacement=80, max_gap_ms=850, max_frame_age_ms=250)พารามิเตอร์สำหรับสร้างออบเจ็กต์
| ชื่อ | คำอธิบาย |
|---|---|
regionRegion | None | สี่เหลี่ยมติดตามเป็นพิกเซลหน้าจอ อยู่ภายในหน้าจอปัจจุบันทั้งหมด มีความกว้างและสูงเป็นจำนวนจำกัดที่เป็นบวก None เลือกทั้งหน้าจอ พิกัดถูกตรึงเมื่อสร้าง บริเวณที่เล็กหรือแคบเกินไปทำให้เกิดข้อผิดพลาด ให้เลือกบริเวณที่ใหญ่ขึ้น. ไม่บังคับ · ระบุตามตำแหน่งหรือชื่อ ค่าเริ่มต้น: None |
excludelist | tuple | None | รายการ Region ที่ยกเว้น โดยตัดตามขอบเขตติดตาม แต่ละบริเวณต้องมีความกว้างและสูงเป็นจำนวนจำกัดที่เป็นบวก พิกัดถูกตรึงเมื่อสร้าง None ไม่ยกเว้นบริเวณใด ยกเว้นได้ไม่เกิน 32 Region. ไม่บังคับ · ระบุตามตำแหน่งหรือชื่อ ค่าเริ่มต้น: None |
max_displacementNumber (1..256) | ระยะเลื่อนสูงสุดต่อแกนเป็นพิกเซลหน้าจอ ต้องเป็นจำนวนจำกัด ค่าเริ่มต้น 80 ไม่บังคับ · ระบุตามตำแหน่งหรือชื่อ ค่าเริ่มต้น: 80 |
max_gap_msNumber (1..5000) | ช่วงห่างสูงสุดระหว่างเฟรมเป็นจำนวนเต็มมิลลิวินาที ค่าเริ่มต้น 850 ไม่บังคับ · ระบุตามตำแหน่งหรือชื่อ ค่าเริ่มต้น: 850 |
max_frame_age_msNumber (1..5000) | อายุเฟรมสูงสุดเป็นจำนวนเต็มมิลลิวินาที ค่าเริ่มต้น 250 ไม่บังคับ · ระบุตามตำแหน่งหรือชื่อ ค่าเริ่มต้น: 250 |
ค่าที่ส่งกลับ
ตัวอย่าง
# ติดตามการเคลื่อนที่ของพื้นหลังระหว่างเฟรมที่จับภาพ
tracker = MotionTracker()
first = tracker.update()
wait(100)
result = tracker.update()
if result.status == "TRACKED":
print(result.dx, result.dy)
tracker.close()