1
Keystone Correction โดยใช้ 3D-Points of Kinect
ด้วย XNA ฉันกำลังแสดงรูปสี่เหลี่ยมผืนผ้าที่เรียบง่ายซึ่งถูกฉายลงบนพื้น โปรเจ็กเตอร์สามารถวางในตำแหน่งโดยพลการ เห็นได้ชัดว่าสี่เหลี่ยมที่ฉายนั้นบิดเบี้ยวตามตำแหน่งและมุมของโปรเจ็คเตอร์ Kinect สแกนพื้นเพื่อหามุมทั้งสี่ ตอนนี้เป้าหมายของฉันคือการแปลงรูปสี่เหลี่ยมเดิมเพื่อให้การฉายไม่มีความบิดเบี้ยวอีกต่อไปโดยการแปรปรวนของสี่เหลี่ยมล่วงหน้า วิธีแรกของฉันคือทำทุกอย่างใน 2D: ก่อนอื่นคำนวณการแปลงเปอร์สเปคทีฟ (โดยใช้ OpenCV warpPerspective()) จากจุดที่สแกนไปยังจุดภายในของสี่เหลี่ยม ดูเหมือนว่าจะใช้งานได้ แต่ช้าเกินไปเนื่องจากไม่สามารถแสดงผลบน GPU ได้ แนวทางที่สองคือการทำทุกอย่างในรูปแบบ 3 มิติเพื่อใช้คุณสมบัติการแสดงผลของ XNA ก่อนอื่นฉันจะแสดงเครื่องบินสแกนมุมของมันด้วย Kinect และทำแผนที่คะแนน 3D ที่ได้รับไปยังระนาบเดิม ในทางทฤษฎีฉันสามารถใช้การผกผันของการแปลงมุมมองกับระนาบได้เช่นเดียวกับที่ฉันทำในแบบสองมิติ อย่างไรก็ตามเนื่องจาก XNA ทำงานร่วมกับเมทริกซ์มุมมองและเส้นโครงร่างฉันจึงไม่สามารถเรียกฟังก์ชันเช่นwarpPerspective()และรับผลลัพธ์ที่ต้องการได้ ฉันต้องคำนวณพารามิเตอร์ใหม่สำหรับมุมมองและเมทริกซ์การฉายของกล้อง คำถาม: เป็นไปได้ไหมที่จะคำนวณพารามิเตอร์เหล่านี้และแยกออกเป็นสองเมทริกซ์ (มุมมองและการฉายภาพ)? ถ้าไม่มีวิธีอื่นที่ฉันสามารถใช้ได้หรือไม่?
15
xna
2d
3d
projection
kinect