racavedigger.com
Daily insights on Bitcoin and crypto markets
  • Facebook
  • Pinterest
  • Home
  • News

Η Kinect χρησιμοποιεί υπέρυθρες

Νίσα

Περίληψη

Σε αυτό το άρθρο, θα διερευνήσουμε πώς το Microsoft Kinect μπορεί να τροποποιηθεί για να λειτουργήσει ως υπέρυθρη κάμερα (IR). Το Kinect είναι συνήθως γνωστό ως κάμερα βάθους, αλλά με κάποιες τροποποιήσεις, μπορεί να τραβήξει εικόνες IR. Με την παρεμπόδιση του προβολέα IR και την προσθήκη εξωτερικών λαμπτήρων IR, μπορούμε να επιτρέψουμε στο Kinect να ανιχνεύσει και να καταγράψει υπέρυθρο φως. Ακολουθούν τα βασικά σημεία που συζητούνται σε αυτό το άρθρο:

  1. Το Kinect είναι περιφερειακό για την κονσόλα Xbox 360 που επιτρέπει στους χρήστες να αλληλεπιδρούν χωρίς να χρησιμοποιούν έναν ελεγκτή.
  2. Το Kinect είναι μια κάμερα βάθους, που σημαίνει ότι μπορεί να υπολογίσει τις αποστάσεις μεταξύ του ίδιου και των αντικειμένων στον οπτικό πεδίο του.
  3. Με την τροποποίηση του Kinect, μπορούμε να το χρησιμοποιήσουμε ως κάμερα IR για να τραβήξουμε εικόνες IR.
  4. Τα στοιχεία του Kinect περιλαμβάνουν έναν προβολέα IR, μια κάμερα IR και μια κάμερα RGB.
  5. Ο προβολέας IR εκπέμπει ένα πλέγμα από κουκκίδες IR σε αντικείμενα, τα οποία ανιχνεύει η κάμερα IR για να υπολογίσει τις εικόνες βάθους.
  6. Μια λεπτομερής περιγραφή του Kinect και των πιθανών χρήσεών του μπορεί να βρεθεί στο βιβλίο “Making things See” από τον Greg Borenstein.
  7. Για να συνδέσετε το Kinect σε έναν υπολογιστή, πρέπει να εγκαταστήσουμε συγκεκριμένο λογισμικό και βιβλιοθήκες, όπως OpenNi, Nite, Sensor και SensorkInect.
  8. Μετά την εγκατάσταση, μπορούμε να επαληθεύσουμε την επιτυχία εκτελώντας δείγματα σεναρίων στην επεξεργασία.
  9. Προκειμένου να αποκλείσουμε τον προβολέα IR, μπορούμε να δημιουργήσουμε ένα blindfol.
  10. Δεδομένου ότι ο αποκλεισμός του προβολέα IR επηρεάζει την ορατότητα IR, πρέπει να προστεθούν εξωτερικοί λαμπτήρες IR για να παρέχουν επαρκή φωτισμό IR.
  11. Για να δημιουργήσουμε λαμπτήρες IR, μπορούμε να ακολουθήσουμε ένα διάγραμμα κυκλωμάτων και να υπολογίσουμε τις τιμές αντίστασης για τα LED.

Ερωτήσεις και απαντήσεις

Ε1: Τι είναι το Kinect κυρίως γνωστό για?

A1: Το Kinect είναι κυρίως γνωστό ως κάμερα βάθους, ικανή να υπολογίζει τις αποστάσεις μεταξύ αντικειμένων και του εαυτού του.

Ε2: Πώς μπορεί να τροποποιηθεί το Kinect για να λειτουργήσει ως υπέρυθρη κάμερα?

A2: Το Kinect μπορεί να τροποποιηθεί εμποδίζοντας τον προβολέα IR και προσθέτοντας εξωτερικούς λαμπτήρες IR για να συλλάβει εικόνες υπέρυθρων.

Ε3: Ποια είναι τα συστατικά του Kinect?

A3: Τα στοιχεία του Kinect περιλαμβάνουν έναν προβολέα IR, μια κάμερα IR και μια κάμερα RGB.

Ε4: Πώς το Kinect Compute Depth Images?

A4: Το Kinect υπολογίζει εικόνες βάθους με την εκπομπή ενός πλέγματος IR κουκίδων σε αντικείμενα, τα οποία η κάμερα IR ανιχνεύει και χρησιμοποιεί για τον υπολογισμό των αποστάσεων.

Ε5: Υπάρχουν συνιστώμενοι πόροι για την εκμάθηση περισσότερων για το Kinect?

A5: Ναι, “Κάνοντας τα πράγματα βλέπε” από τον Greg Borenstein παρέχει μια λεπτομερή περιγραφή του Kinect και των πιθανών εφαρμογών του.

Ε6: Τι λογισμικό και βιβλιοθήκες απαιτούνται για τη σύνδεση του Kinect με έναν υπολογιστή?

A6: Το απαραίτητο λογισμικό και οι βιβλιοθήκες περιλαμβάνουν OpenNi, Nite, Sensor και SensorkInect.

Ε7: Πώς μπορούμε να επαληθεύσουμε την επιτυχή εγκατάσταση του λογισμικού Kinect?

A7: Εκτελώντας δείγματα σεναρίων στην επεξεργασία, όπως το βάθος και το βάθος, μπορούμε να επαληθεύσουμε εάν η εγκατάσταση ήταν επιτυχής.

Ε8: Πώς μπορεί να αποκλειστεί ο προβολέας IR του Kinect?

A8: Ένα blindfold μπορεί να δημιουργηθεί χρησιμοποιώντας ταινία αγωγών και μαξιλάρια Velcro για να καλύψει και να μπλοκάρει τον προβολέα IR.

Ε9: Γιατί είναι απαραίτητο να προσθέσετε εξωτερικούς λαμπτήρες IR?

A9: Η παρεμπόδιση του προβολέα IR μειώνει την ορατότητα IR, επομένως οι εξωτερικοί λαμπτήρες IR είναι απαραίτητες για την παροχή επαρκούς φωτισμού IR για τη λήψη εικόνων IR.

Q10: Πώς μπορούμε να οικοδομήσουμε λάμπες IR για να βελτιώσουμε την ορατότητα IR?

A10: Μετά από ένα διάγραμμα κυκλώματος και υπολογιστικές τιμές αντίστασης για τις LED, μπορούμε να δημιουργήσουμε λαμπτήρες IR για να βελτιώσουμε την ορατότητα IR.

συμπέρασμα

Σε αυτό το άρθρο, έχω διερευνήσει πώς το Microsoft Kinect μπορεί να τροποποιηθεί για να λειτουργήσει ως υπέρυθρη κάμερα. Με τις σωστές τροποποιήσεις και προσθήκες, το Kinect μπορεί να συλλάβει εικόνες υπέρυθρων και να παρέχει νέες δυνατότητες για διάφορα έργα. Αυτό το έργο μας επιτρέπει να αξιοποιήσουμε τις δυνατότητες του Kinect πέρα ​​από τις παραδοσιακές του χρήσεις, αποδεικνύοντας την ευελιξία και την επέκτασή του.

Χρησιμοποιώντας ένα Kinect ως υπέρυθρη κάμερα

Μπορνστάιν, Γκρεγκ, Κάνοντας τα πράγματα να δείτε, Ο’Reilly Media, Inc., 978-1-449-30707-3, Ιανουάριος 2012.

Η Kinect χρησιμοποιεί υπέρυθρες

Э э э э э э э э э э э э э э э э э э э э э э э э э э э э э э э э э э

Ы з з з з з з з и и и и п п п п п п з п з з з з з з з з з п. С п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п. ПOчем э э э э э э э э э э э п п п п п п п?

Э э э э э а а а а и е е з з л л л л л л л э э э э э э э э э э э э Κοιτάζοντας το ριμπάγ. С с п п п п п э э э э э э э э э э э э э э э э э э э э э э э э э э э э. Д э э э э д д д и и д д д ρίας н и д д д д д д д д д д д д д д д д д д д д д д д д д д д д д д д д д д д.

И и з а а а а а а а а ы ы з .. Е е е е д п п ж ж ж ж ж ж ж ж ж ж ж ж ж ж ж ж ж ж п п п п п п п п п п п п п п п п п. Орrρά. Пороннαι.

ПON п п е е а а τροφή пρέφ а а а а а τροφήλου. е е е и τροφή ее же жÉ в в ж и и и и ч ч.

Χρησιμοποιώντας ένα Kinect ως υπέρυθρη κάμερα

Αυτό το έργο θα δείξει πώς το Microsoft Kinect μπορεί να τροποποιηθεί για να χρησιμοποιηθεί ως υπέρυθρη κάμερα (IR).

  • Απαιτείται χρόνος: 2-3 ώρες
  • Εκτυπώστε αυτό το έργο

Χρησιμοποιώντας ένα Kinect ως υπέρυθρη κάμερα

Από τον Damon Conover

Damon Conover

Το Kinect είναι περιφερειακό για την κονσόλα Xbox 360 που επιτρέπει σε έναν χρήστη να αλληλεπιδρά με το Xbox 360 χωρίς να αγγίζει έναν ελεγκτή. Μια γενική περιγραφή του Kinect είναι ότι είναι μια κάμερα βάθους. Αυτό σημαίνει ότι μπορείτε να τοποθετήσετε αντικείμενα μπροστά του και θα υπολογίσει την απόσταση από αυτό στα αντικείμενα, δημιουργώντας έτσι μια εικόνα βάθους. Ως εκ τούτου, το Kinect μπορεί να παρέχει τις θέσεις των αντικειμένων σε μια εικόνα σε σχέση με τον εαυτό του, και αυτές οι πληροφορίες μπορούν να χρησιμοποιηθούν σε διάφορα έργα. Επίσης, το Kinect περιέχει πολλά εξαρτήματα που, με ελαφρές τροποποιήσεις, μπορούν να χρησιμοποιηθούν για νέους σκοπούς. Για παράδειγμα, αυτό το έργο θα δείξει πώς το Kinect μπορεί να χρησιμοποιηθεί ως κάμερα υπέρυθρων (IR).

Για λεπτομερή περιγραφή του τρόπου λειτουργίας του Kinect και του τρόπου με τον οποίο μπορεί να χρησιμοποιηθεί σε διαφορετικά έργα, σας συνιστώ να διαβάσετε Κάνοντας τα πράγματα να δείτε από τον Greg Borenstein (http: // κατάστημα.στύρος.com/product/06369200…). Η εικόνα στο βήμα 1 δείχνει τα στοιχεία του Kinect που είναι απαραίτητα για την κατανόηση αυτού του έργου. Ο προβολέας IR λάμπει ένα πλέγμα από κουκίδες IR στα αντικείμενα μπροστά του. Δεν μπορούμε να δούμε τις κουκίδες, αλλά η κάμερα IR μπορεί να τις ανιχνεύσει. Χρησιμοποιώντας το πρότυπο των κουκίδων σε κάθε αντικείμενο, το Kinect είναι σε θέση να υπολογίσει την εικόνα βάθους. Το τελικό στοιχείο είναι μια κάμερα RGB που είναι παρόμοια με μια τυπική κάμερα.

Βήματα έργου

Εγκαταστήστε το λογισμικό που είναι απαραίτητο για τη σύνδεση του Kinect στον υπολογιστή σας

Ακολουθήστε τις συγκεκριμένες οδηγίες πλατφόρμας εδώ για:

Εγκαταστήστε τους οδηγούς OpenNi, Nite, Sensor και SensorkInect

Εγκαταστήστε τη βιβλιοθήκη Simpleopenni για επεξεργασία

Βεβαιωθείτε ότι η εγκατάσταση ήταν επιτυχής

Ξεκινήστε την επεξεργασία και εκτελέστε τα παραδείγματα βάθους και βάθους.

Παρέχετε ενέργεια στο kinect σας και συνδέστε την στον υπολογιστή σας μέσω της θύρας USB.

Μεταβείτε στο αρχείο → Παραδείγματα → Συνεισφέρονται βιβλιοθήκες → SimpleOpenni → OpenNI.

Κάντε διπλό κλικ στο παράδειγμα που θέλετε να εκτελέσετε (για παράδειγμα, DepthinFrared) και το σενάριο παραδείγματος θα ανοίξει.

Κάντε κλικ στο κουμπί Εκτέλεση και μια εικόνα θα εμφανιστεί στην οθόνη σας. Για το σενάριο βάθους, μια εικόνα βάθους θα βρίσκεται στα αριστερά και μια εικόνα IR θα είναι στα δεξιά, όπως φαίνεται στα αριστερά.

Αποκλείστε τον προβολέα IR

Όπως φαίνεται στο προηγούμενο βήμα, η εικόνα IR που παράγεται από το σενάριο DepthinFrared περιέχει ένα πρότυπο κουκκίδων που θέλουμε να αφαιρέσουμε.

Για να το κάνετε αυτό, δημιουργήστε ένα blindfold για να καλύψετε τον προβολέα IR.

Πάρτε δύο λωρίδες ταινίας αγωγών, κάθε περισσότερο από 9 ίντσες, και τοποθετήστε ένα τέτοιο ώστε να επικαλύπτει ελαφρώς το άλλο. Στη συνέχεια, επαναλάβετε χρησιμοποιώντας δύο ακόμα λωρίδες ταινίας αγωγών.

Πάρτε τις δύο λωρίδες ταινίας διπλής πλάτους και τοποθετήστε τις κολλητικές πλευρές μαζί.

Κόψτε τη λωρίδα που προκύπτει σε μήκος 9 ίντσες.

Τοποθετήστε τα μαξιλαράκια Velco στο ένα άκρο της λωρίδας, τυλίξτε τη λωρίδα γύρω από το Kinect, καλύπτοντας τον προβολέα IR και τοποθετήστε τα αντίθετα μαξιλαράκια Velco έτσι ώστε η λωρίδα να κρατιέται σφιχτά, όπως φαίνεται στα αριστερά.

Δημιουργήστε τους λαμπτήρες IR

Τώρα που ο προβολέας IR έχει αποκλειστεί, δεν υπάρχει πλέον αρκετό φως IR για την κάμερα IR να δημιουργήσει μια καλή εικόνα.

Επομένως, πρέπει να προστεθεί εξωτερικός φωτισμός IR. Το διάγραμμα κυκλώματος στα αριστερά δείχνει ένα πιθανό σχέδιο για δύο λαμπτήρες IR.

Συνδέστε την τροφοδοσία DC στην υποδοχή ισχύος και μετρήστε την τάση της (VDC) χρησιμοποιώντας ένα πολύμετρο. Για την τροφοδοσία μου, VDC = 15.6 V.

Αναζητήστε την τυπική τάση προς τα εμπρός (VF) και το μέγιστο ρεύμα προς τα εμπρός (αν, μέγιστο) των LED. Τα δικά μου ήταν vf = 1.5 V και αν = 20 mA, αντίστοιχα.

Υπολογίστε την αντίσταση (R1 = R2 = R3 = R4) που είναι απαραίτητη για τον περιορισμό του ρεύματος μέσω κάθε σειράς έξι LED. Χρησιμοποίησα 360 Ω αντιστάσεις. R> ((VDC – (# των LED)*VF)/if)

Δημιουργήστε τους λαμπτήρες IR (συνέχεια)

Σε ένα μισό PCB, τοποθετήστε έξι LED και μία αντίσταση. Καλώδια συγκόλλησης που συνδέουν τις LED, την κάθοδο σε άνοδο και την αντίσταση. Επαναλάβετε για το άλλο μισό του PCB. Στη συνέχεια, συγκολλήστε ένα καλώδιο που συνδέει τις ελεύθερες ανόδους και ένα άλλο καλώδιο που συνδέει το ελεύθερο άκρο των αντιστάσεων.

Συγκολλήστε ένα μακρύ, κόκκινο καλώδιο στις συνδεδεμένες ανόδους και ένα μακρύ, μαύρο σύρμα στις συνδεδεμένες αντιστάσεις.

(Προαιρετικό) Χρησιμοποιήστε το Sugru για να κρατήσετε τα μακρά καλώδια στο PCB για να παρέχετε κάποια ανακούφιση από το στέλεχος.

Σπρώστε τρύπες στο κάτω μέρος ενός πλαστικού κυπέλλου, τροφοδοτήστε τα καλώδια μέσα από την οπή και πιέστε το PCB σφιχτά στο κύπελλο. Εάν το PCB δεν ταιριάζει σφιχτά, χρησιμοποιήστε το Sugru για να το κρατήσετε στη θέση του.

Επαναλάβετε τα προηγούμενα τέσσερα βήματα για τη δεύτερη λάμπα.

Δημιουργήστε τον ελεγκτή έντασης λάμπα

Χρησιμοποιήστε δαγκάνες για να μετρήσετε τα μεγέθη των οπών που είναι απαραίτητες για την τοποθέτηση των δύο γλάστρες, διακόπτη, κάτοχος ασφάλειας και υποδοχή ισχύος.

Τρυπήστε τρύπες στο περίβλημα του έργου και τοποθετήστε το υλικό. Επίσης, τρυπήστε δύο μικρές τρύπες για να εισέλθουν τα καλώδια. Όταν σχεδιάζετε πού να τοποθετήσετε κάθε τρύπα, να έχετε κατά νου όπου κάθε μέρος θα καθίσει στο περίβλημα, για να βεβαιωθείτε ότι όλα ταιριάζουν.

Θα χρειαστεί να ανοίξετε την τρύπα για την υποδοχή ισχύος χρησιμοποιώντας ένα εργαλείο Dremel ή με ένα μαχαίρι.

Τοποθετήστε το Sugru στο εσωτερικό και έξω από το περίβλημα για να κρατήσετε το γρύλο στη θέση του.

Δημιουργήστε τον ελεγκτή έντασης λαμπτήρων (συνέχεια)

Γυρίστε κάθε κατσαρόλα στη θέση που θα είναι η χαμηλή ρύθμιση και στη συνέχεια χρησιμοποιήστε το πολύμετρο σας’S Contectuer Tester για να βρείτε τις δύο ακίδες που θα χρησιμοποιηθούν στο κύκλωμα (ο ελεγκτής θα είναι ηχητικό σήμα).

Επίσης, χρησιμοποιήστε τον ελεγκτή συνέχειας για να προσδιορίσετε ποιες δύο ακίδες στον διακόπτη συνδέονται όταν ο διακόπτης είναι επάνω και ποιοι είναι συνδεδεμένοι όταν ο διακόπτης είναι κάτω.

Συγκόλληση μικρών καλωδίων που συνδέουν τα μέρη μέσα στο περίβλημα, σύμφωνα με το διάγραμμα κυκλώματος.

Κολλήστε δύο μακρά, κόκκινα καλώδια στα γλάστρες και δύο μακρά, μαύρα καλώδια στο διακόπτη, και στη συνέχεια τα σπρώξτε τα μέσα από τις δύο μικρές τρύπες.

Βιδώστε το περίβλημα’S καπάκι και τοποθετήστε μια ασφάλεια στον κάτοχο της ασφάλειας.

Περιστρέψτε τα καλώδια που εξέρχονται από τους λαμπτήρες μαζί με τα καλώδια που εισέρχονται στον ελεγκτή (κόκκινο-κόκκινο, μαύρο σε μαύρο), συγκολλήστε εάν είναι απαραίτητο, στη συνέχεια καλύψτε τα εκτεθειμένα καλώδια με ηλεκτρική ταινία.

Τοποθετήστε το kinect και τους λαμπτήρες

Τοποθετήστε το kinect σε μια επιφάνεια, υποδεικνύεται στο αντικείμενο που επιθυμείτε να απεικονίσετε.

(Προαιρετικό) Συνδέστε το Kinect με τον υποδείκτη τρίποδα και στη συνέχεια σε τρίποδο. Συνδέστε το τρίποδο σε μια βάση δακτυλίου και τοποθετήστε το μπροστά από την επιφάνεια απεικόνισης.

Τοποθετήστε τους λαμπτήρες σε έναν προσανατολισμό έτσι ώστε η επιφάνεια απεικόνισης να φωτίζεται.

(Προαιρετικά) Συνδέστε τους λαμπτήρες με τη βάση του δακτυλίου και κρατήστε τους στη θέση τους με τους σφιγκτήρες, τους μεντεσέδες και την ταινία.

Συνδέστε την τροφοδοσία τροφοδοσίας τοίχου-προσαρμογέα σε μια πρίζα και στη συνέχεια συνδέστε την με τον ελεγκτή έντασης λαμπτήρων μέσω της υποδοχής ισχύος.

Εκτελέστε το πείραμα

Πάρτε ένα κομμάτι χαρτιού κατασκευής και σχεδιάστε ένα αντικείμενο στην αριστερή πλευρά και ένα άλλο στη δεξιά πλευρά, χρησιμοποιώντας ένα μολύβι ξυλάνθρακα.

Χρώμα πάνω από το αριστερό αντικείμενο με το μπλε παστέλ φθάνο και το χρώμα πάνω από το σωστό αντικείμενο με το Πρωσικό μπλε παστέλ.

Τοποθετήστε το χαρτί μπροστά από την κάμερα.

Ανοίξτε την επεξεργασία, δημιουργήστε σενάρια RGB_SAVE.PDE και ir_save.PDE (Ο κωδικός παρέχεται στον συνημμένο κωδικό.PDF), τροποποιήστε τον κώδικα έτσι ώστε τα αρχεία και τα ονόματα διαδρομών να είναι κατάλληλα για τον υπολογιστή σας, εκτελέστε RGB_SAVE.PDE, και στη συνέχεια τρέξτε ir_save.PDE.

Ενεργοποιήστε τους λαμπτήρες με το κτύπημα του διακόπτη και στη συνέχεια ρυθμίστε την ένταση χρησιμοποιώντας τα κουμπιά στον ελεγκτή. Δεν θα μπορείτε να δείτε το φως IR που εκπέμπεται από τα LED, οπότε χρησιμοποιήστε το βίντεο IR που συλλαμβάνεται από την κάμερα για να καθορίσετε την επιθυμητή ένταση. Θα χρειαστεί να εκτελέσετε ξανά τα δύο σενάρια, αφού προσαρμόσετε τους λαμπτήρες.

Η προκύπτουσα εικόνα, που εμφανίζεται στα αριστερά, θα πρέπει να εμφανίζει μια έγχρωμη εικόνα στην κορυφή και ένα βίντεο IR στο κάτω μέρος. Τα αποτελέσματα δείχνουν ότι οι δύο χρωστικές μοιάζουν παρόμοιες στο χρωματικό τμήμα του φάσματος, αλλά πολύ διαφορετικά στο τμήμα IR.

Για μια λεπτομερή περιγραφή της επιστήμης πίσω από αυτό το πείραμα, σας συνιστώ να διαβάσετε τα έγγραφα από τους Delaney et al. που αναφέρονται στις αναφορές.

βιβλιογραφικές αναφορές

Simple-Openni Wiki (τελευταία πρόσβαση στις 20 Απριλίου 2012). *** Τα παραδείγματα που περιλαμβάνονται στην εργαλειοθήκη είναι ιδιαίτερα χρήσιμα.

Μπορνστάιν, Γκρεγκ, Κάνοντας τα πράγματα να δείτε, Ο’Reilly Media, Inc., 978-1-449-30707-3, Ιανουάριος 2012.

Reas, Casey και Ben Fry, Ξεκινώντας με την επεξεργασία, Ο’Reilly Media, Inc., 978-1-449-37980-3, Ιούνιος 2010.

Μπλέικ, Ιησούς, “Kinect Hacking”, Make :, Τόμος 29, 124-133, http: // makeprojects.com/wiki/29#τμήμα… (τελευταία πρόσβαση στις 20 Απριλίου 2012).

Delaney, John K., Elizabeth Walmsley, Barbara H. Berrie και Colin F. Φλέκτης, “Πολυφασματική απεικόνιση ζωγραφικής στο υπέρυθρο για ανίχνευση και χαρτογράφηση μπλε χρωστικών ουσιών”, (Sackler NAS Colloquium) Επιστημονική εξέταση της τέχνης: Σύγχρονες τεχνικές διατήρησης και ανάλυσης, Πρακτικά της Εθνικής Ακαδημίας Επιστημών, 120-136, http: // www.υπνάκο.EDU/Κατάλογος/11413.HTML (τελευταία πρόσβαση στις 20 Απριλίου 2012), 0-309-54961-2, 2005.

Delaney, John K., Jason g. Zeibel, Mathieu Thoury, Roy Littleton, Kathryn M. Μοράλες, Μάικλ Πάλμερ, Ε. René de la rie, “Η φασματοσκοπία απεικόνισης ορατή και υπέρυθρη ανάκλαση των ζωγραφικών ζωγραφικών: χαρτογράφηση χρωστικών και βελτιωμένη αντανακλαστική υπέρυθρη ακτινοβολία”, Q3A: Οπτική για τέχνες, αρχιτεκτονική και αρχαιολογία II, εκδόθηκε από τους Luca Pezzati και Renzo Salimbeni, Proc. του Spie Vol. 7391, 2009.

Ευχαριστίες

Ο συγγραφέας επιθυμεί να ευχαριστήσει τον Δρ. Murray Loew, του Πανεπιστημίου George Washington και DR. John Delaney και Dr. μι. Melanie Gifford, της Εθνικής Πινακοθήκης, Ουάσιγκτον, Δ.ντο., για τα σχόλιά τους σχετικά με την πειραματική ρύθμιση.

Ο συγγραφέας επιθυμεί επίσης να αναγνωρίσει την υποστήριξη της υποτροφίας που έλαβε από τις ανταμοιβές για το επίτευγμα για τους επιστήμονες των επιστημόνων (ARCS).

συμπέρασμα

ΣΗΜΕΙΩΣΗ: Μόλις εγκαταστήσετε με επιτυχία το λογισμικό για τη σύνδεση του Kinect στον υπολογιστή σας, τα μόνα απαιτούμενα βήματα για την ολοκλήρωση αυτού του έργου είναι: 1) Αποκλείστε τον προβολέα IR, 2) Δημιουργήστε και τοποθετήστε ένα πείραμα αντικατάστασης IR (με κεντρικό μήκος κύματος κοντά στα 830 nm) και 3) πείραμα. Παρέχονται οι λεπτομέρειες της συσκευής και του πειράματός μου, αλλά σας ενθαρρύνω να τροποποιήσετε τις λεπτομέρειες με βάση τα μέρη και τον εξοπλισμό που έχετε στη διάθεσή σας και με βάση τα πράγματα που επιθυμείτε να απεικονίσετε. Χαρούμενο κτίριο!

Πώς λειτουργεί η ανίχνευση κίνησης στο Xbox Kinect

Το πρωτότυπο για τη Microsoft’Η κάμερα και το μικρόφωνο Kinect κοστίζουν περίφημα 30.000 $. Τα μεσάνυχτα το πρωί της Πέμπτης, εσείς’Θα μπορέσω να το αγοράσω για $ 150 ως περιφερειακό Xbox 360. Η Microsoft προβάλλει ότι θα πουλήσει 5 εκατομμύρια μονάδες από τώρα έως τα Χριστούγεννα. Εμείς’θα έχω περισσότερες λεπτομέρειες και μια ανασκόπηση του συστήματος σύντομα, αλλά για […]

Αποθηκεύστε την ιστορία

Αποθηκεύστε την ιστορία

Το πρωτότυπο για τη φωτογραφική μηχανή και το μικρόφωνο της Microsoft κοστίζουν περίφημα 30.000 $. Τα μεσάνυχτα το πρωί της Πέμπτης, θα μπορείτε να το αγοράσετε για $ 150 ως περιφερειακό Xbox 360.

Η Microsoft προβάλλει ότι θα πουλήσει 5 εκατομμύρια μονάδες από τώρα έως τα Χριστούγεννα. Θα έχουμε περισσότερες λεπτομέρειες και μια ανασκόπηση του συστήματος σύντομα, αλλά προς το παρόν αξίζει να αφιερώσουμε λίγο χρόνο για να σκεφτούμε πώς λειτουργούν όλα αυτά.

ΦΩΤΟΓΡΑΦΙΚΗ ΜΗΧΑΝΗ

Η κάμερα του Kinect τροφοδοτείται τόσο από υλικό όσο και από λογισμικό. Και κάνει δύο πράγματα: δημιουργούν μια τρισδιάστατη (μετακινούμενη) εικόνα των αντικειμένων στον οπτικό πεδίο και αναγνωρίζουν (κινούμενα) ανθρώπινα όντα μεταξύ αυτών των αντικειμένων.

Τα παλαιότερα προγράμματα λογισμικού χρησιμοποίησαν διαφορές στο χρώμα και την υφή για να διακρίνουν αντικείμενα από το υπόβαθρό τους. Το PrimeSense, η εταιρεία της οποίας η τεχνολογία εξουσιάζει το Kinect, και την πρόσφατη απόκτηση της Microsoft Canesta χρησιμοποιεί διαφορετικό μοντέλο. Η κάμερα μεταδίδει αόρατο φως κοντά στην υπέρυθρη.

Το χρονικό διάστημα λειτουργεί όπως το Sonar: Αν ξέρετε πόσο καιρό χρειάζεται το φως για να επιστρέψετε, ξέρετε πόσο μακριά είναι ένα αντικείμενο. Ρίξτε ένα μεγάλο πεδίο, με πολλά pings να πηγαίνουν πίσω και πίσω με την ταχύτητα του φωτός, και μπορείτε να μάθετε πόσο μακριά είναι πολλά αντικείμενα.

Η χρήση μιας γεννήτριας υπέρυθρης ακτινοβολίας επιλύει επίσης εν μέρει το πρόβλημα του φωτός περιβάλλοντος. Δεδομένου ότι ο αισθητήρας δεν έχει σχεδιαστεί για να καταγράφει ορατό φως, δεν παίρνει αρκετά ψευδή θετικά.

Το PrimeSense και το Kinect πηγαίνουν ένα βήμα παραπέρα και κωδικοποιούν πληροφορίες στο φως της IR. Καθώς επιστρέφονται αυτές οι πληροφορίες, μερικές από αυτές παραμορφώνονται-οι οποίες με τη σειρά τους μπορούν να βοηθήσουν στη δημιουργία μιας λεπτότερης εικόνας της υφή 3-D αυτών των αντικειμένων, όχι μόνο του βάθους τους.

Με αυτή την τεχνολογία, το Kinect μπορεί να διακρίνει το βάθος των αντικειμένων σε 1 εκατοστό και το ύψος και το πλάτος τους μέσα σε 3 mm.

Ένας παραδοσιακός ελεγκτής βιντεοπαιχνιδιών είναι ατομικός και σειριακός: είμαι εγώ και ό, τι ελέγχω στην οθόνη σε σχέση με εσάς και τι ελέγχετε. Μπορούμε να παίξουμε συνεργατικά, αλλά είμαστε βασικά διακριτές οντότητες που απομονώνονται από το ένα το άλλο, χειρίζοντας αντικείμενα στα χέρια μας.

Ένας ελεγκτής βίντεο είναι επίσης μια εξειδικευμένη συσκευή. Μπορεί να κάνει ελαφριά εργασία ως τηλεχειριστήριο, αλλά τα κουμπιά, τα d-pads, τα joysticks, τα επιταχυνσιόμετρα, τα γυροσκόπια, οι απτικοί μηχανισμοί ανατροφοδότησης και η διασύνδεση με την κονσόλα έχουν σχεδιαστεί για να επικοινωνούν πολύ συγκεκριμένα είδη πληροφοριών.

Το Kinect είναι κάτι διαφορετικό. Είναι κοινόχρηστο, συνεχές και γενικό: μια φυσική διεπαφή χρήστη (ή NUI) για πολυμέσματα, παρά ένα GUI για τυχερά παιχνίδια.

Αλλά χρειάζεται πολλή τεχνολογία για να φτιάξει μια διασύνδεση όπως αυτή έρχονται άψογα και “φυσικά.«

Kinect 2 χέρια στα εργαστήρια

Υπέρυθρη εικόναΕργαστήριο 2: Εμφάνιση δεδομένων υπέρυθρης ακτινοβολίας

Εκτιμώμενος χρόνος ολοκλήρωσης: 20 λεπτά

Αυτό το εργαστήριο είναι μέρος μιας σειράς χεριών σε εργαστήρια που σας διδάσκουν πώς να δημιουργήσετε ένα Windows 8.1 Εφαρμογή αποθήκευσης, χρησιμοποιώντας σχεδόν κάθε διαθέσιμη λειτουργία του Kinect 2. Αυτό είναι το δεύτερο εργαστήριο της σειράς. Σε αυτό το εργαστήριο θα μάθετε πώς να ανακτήσετε την υπέρυθρη τροφοδοσία από τον αισθητήρα Kinect και πώς να παρουσιάσετε την τροφοδοσία στο XAML ως εικόνα.

  • Πώς να ανοίξετε τον αναγνώστη υπέρυθρων πλαισίων στον αισθητήρα Kinect στον κώδικα.
  • Πώς να λάβετε το υπέρυθρο πλαίσιο όταν είναι έτοιμο.
  • Πώς να μετατρέψετε τα δεδομένα υπέρυθρων πλαισίων σε ένα μονόχρωμο bitmap
  • Πώς να παρουσιάσετε το μεταβαλλόμενο bitmap στο xaml.
  • Πώς να λάβετε και να παρουσιάσετε δεδομένα σχετικά με την κατάσταση και την επίλυση του Kinect 2.

Άσκηση 1 – Εμφάνιση του υπέρυθρου πλαισίου

  1. Ανοίξτε το υπάρχον Δείγμα Kinect 2 Λύση στο Visual Studio ή το αντίγραφο που έχετε από το τέλος του προηγούμενου εργαστηρίου.
  2. Πρώτα θα ανοίξετε το Αναγνώστης υπέρυθρων πλαισίων Προκειμένου να ανακτηθούν δεδομένα υπέρυθρων από τον αισθητήρα Kinect. Ανοιξε το Κύρια σελίδα.XAML.CS αρχείο από το Εξερευνητής λύσης. Ο κώδικας που γράφετε θα ρυθμίσει την υπέρυθρη ροή, τα γεγονότα και τα απαιτούμενα δεδομένα, πριν ανοίξει ο αισθητήρας Kinect. Όταν το kinect αρχίζει να παραδίδει πλαίσια, έχετε κάτι που λαμβάνει την είσοδο. Για να εξηγήσετε τον ακόλουθο κώδικα εδώ είναι μια περιγραφή των σημαντικών μεταβλητών:
    • υπερκεραμένος – Αναγνώστης για πλαίσια υπέρυθρων
    • υπέρυθροςframedata – Ενδιάμεση αποθήκευση για λήψη δεδομένων πλαισίου από τον αισθητήρα
    • infraredpixels – Ενδιάμεση αποθήκευση για δεδομένα πλαισίου που μετατρέπονται σε εικονοστοιχεία χρώματος για οθόνη
    • bitmap – Το writabitbitmap που θα αντικαταστήσει τα περιεχόμενα μιας εικόνας στο XAML

Ένα νέο πλαίσιο λαμβάνεται από τον αναγνώστη πλαισίου όταν είναι έτοιμο, συνήθως σε περίπου 30 καρέ ανά δευτερόλεπτο. Κάθε πλαίσιο φτάνει ως δεδομένα υπέρυθρης ακτινοβολίας για κάθε εικονοστοιχείο της ανάλυσης της κάμερας. Αυτά τα δεδομένα μετατρέπονται σε ένα εύρος χρωμάτων στο γκρι, στα infraredpixels. Στη συνέχεια, τα infraredpixel χρησιμοποιούνται για να γράψουν σε ένα αντικείμενο bitmap.

Όλες αυτές οι μεταβλητές πρέπει να αρχικοποιηθούν με το κατάλληλο μέγεθος, το οποίο είναι το μέγεθος του υπέρυθρου πλαισίου που προέρχεται από το Kinect 2.

Για να αρχικοποιήσετε σωστά αυτές τις μεταβλητές, αντιγράψτε τον επισημασμένο κωδικό παρακάτω:

// . Άλλοι χώροι ονομάτων Χρήση Windows.Ui.XAML.Μεσο ΜΑΖΙΚΗΣ ΕΝΗΜΕΡΩΣΗΣ.Απεικόνιση το χώρο ονομάτων Kinect2Sample < public sealed partial class MainPage : Page < // Size of the RGB pixel in the bitmap ιδιωτική const int bytesperpixel = 4; ιδιωτικός Kinectsensor Kinectsensor = null; ιδιωτικό writeablebitmap bitmap = null; // υπέρυθρο πλαίσιο ιδιωτικό veraredframereader infraredframereader = null; ιδιωτικό usshort [] infraredFramedata = null; ιδιωτικό byte [] infraredPixels = null; Public MainPage () < // one sensor is currently supported this.kinectSensor = KinectSensor.GetDefault(); // get the infraredFrameDescription from the // InfraredFrameSource Framedescription veraredframedescription = Αυτό.κινητοποιητής.Infraredframesource.Framedescription; // Ανοίξτε τον αναγνώστη για τα υπέρυθρες πλαίσια Αυτό.infraredFramereader = Αυτό.κινητοποιητής.Infraredframesource.OpenReader (); // Χειρισμός καλωδίων για άφιξη πλαισίου Αυτό.υπερκεραμένος.Framearrived += Αυτό.Reader_infraredFramearrived; // Διαθέσετε χώρο για να τοποθετήσετε τα εικονοστοιχεία // που λαμβάνονται και μετατρέπονται Αυτό.infraredframedata = Νέο Ushort [InfraredFramedescription.Πλάτος * υπερκειμένου.Υψος]; Αυτό.infraredPixels = Νέο byte [infraredframedescription.Πλάτος * υπερκειμένου.Ύψος * bytesperpixel]; // Δημιουργήστε το bitmap για εμφάνιση Αυτό.bitmap = Νέο WriteableBitMap (InfraredFramedescription.Πλάτος, υπερκειμένου.Υψος); // Ανοίξτε τον αισθητήρα αυτό.κινητοποιητής.Ανοιξε(); Αυτό.Initializecomponent (); >>>

Δημόσια σφραγισμένη μερική τάξη MainPage: σελίδα < // . ιδιωτικό κενό reader_infraredFramearrived (αποστολέας αντικειμένων, ThurnaredframearrivedEventArgs e) < bool infraredFrameProcessed = false; // Το InfraredFrame είναι ανιχνευτή Χρήση (InfraredFrame InfraredFrame = μι.Καραμέλα.AcquireFrame ())  αν (υπέρυθρο != null) < Framedescription veraredframedescription = υπερκεραμένο πλαίσιο.Framedescription; // επαληθεύστε τα δεδομένα και γράψτε τα νέα δεδομένα υπέρυθρης πλαισίας // στο bitmap της οθόνης αν ((((invraredFramedescription.Πλάτος * υπερκειμένου.Υψος) == Αυτό.υπέρυθροςframedata.Μήκος) && (InfraredFramedescription.Πλάτος == Αυτό.bitmap.Pixelwidth) && (InfraredFramedescription.Ύψος == Αυτό.bitmap.Pixelheight))  // Αντιγράψτε τα δεδομένα pixel από την εικόνα σε έναν προσωρινό πίνακα // υπερκεραμένο πλαίσιο.CopyFramedatatoArray ( Αυτό.infraredframedata); invraredFrameProcessed = true; > > > // πήραμε ένα πλαίσιο, μετατρέψαμε και απόδοση αν (υπέρυμα πλαισίου)  ConvertinFRAREDDatatopixels (); Renderpixelarray (αυτό.infraredpixel); > > >

Δημόσια σφραγισμένη μερική τάξη MainPage: σελίδα < /// & ltsummary & gt /// Η υψηλότερη τιμή που μπορεί να επιστραφεί στο InfraredFrame. /// είναι cast σε ένα float για αναγνωσιμότητα στον κωδικό απεικόνισης. /// & lt/summary & gt ιδιωτικό const float verfraredsourcevaluemaximum = (Float) Ushort.Maxvalue; /// & lt/summary & gt /// που χρησιμοποιείται για να ρυθμίσετε το κατώτερο όριο, μετά την επεξεργασία, του /// Δεδομένα υπέρυθρης ακτινοβολίας που θα αποδώσουμε. /// Η αύξηση ή η μείωση αυτής της τιμής θέτει μια φωτεινότητα /// "τοίχος" είτε πιο κοντά είτε πιο μακριά. /// & lt/summary & gt ιδιωτικό const float infraredoutputValueMinimum = 0.01F; /// & ltsummary & gt /// το ανώτατο όριο, μετά την επεξεργασία, του /// Δεδομένα υπέρυθρης ακτινοβολίας που θα κάνουν. /// & lt/summary & gt ιδιωτικό const float infraredoutputvaluemaximum = 1.0f; /// & ltsummary & gt /// Η αξία του infraredscenevalueavery καθορίζει το /// μέση υπέρυθρη αξία της σκηνής. /// Αυτή η τιμή επιλέχθηκε με την ανάλυση του μέσου /// ένταση pixel για μια δεδομένη σκηνή. /// Αυτό θα μπορούσε να υπολογιστεί κατά το χρόνο εκτέλεσης για να χειριστεί διαφορετικά /// ir συνθήκες μιας σκηνής (έξω από το εσωτερικό). /// & lt/summary & gt ιδιωτικό const float infraredscenevalueavery = 0.08F; /// & ltsummary & gt /// Η αξία του infraredscenestandardDeviations καθορίζει /// ο αριθμός των τυπικών αποκλίσεων που πρέπει να εφαρμοστούν σε ///. /// Αυτή η τιμή επιλέχθηκε με ανάλυση δεδομένων από μια δεδομένη σκηνή. /// Αυτό θα μπορούσε να υπολογιστεί κατά το χρόνο εκτέλεσης για να χειριστεί διαφορετικά /// ir συνθήκες μιας σκηνής (έξω από το εσωτερικό). /// & lt/summary & gt ιδιωτικό const float infraredscenestandardDeviations = 3.0f; //. Άλλες ιδιωτικές μεταβλητές ακολουθούν>

Δημόσια σφραγισμένη μερική τάξη MainPage: σελίδα < // Reader_InfraredFrameArrived() before this. ιδιωτικό κενό ConvertInFraredDatatopixels () < // μετατρέψτε το υπέρυθρο σε RGB int colorpixelindex = 0; για (int i = 0; i < this.infraredFrameData.Length; ++i) // ομαλοποιήστε τα εισερχόμενα υπερύθμονα δεδομένα (USHORT) // ένα πλωτήρα που κυμαίνεται από το υπέρυθρο // to infraredoutputvaluemaximum] από // 1. Διαίρεση της εισερχόμενης τιμής από το // μέγιστη τιμή πηγής Float EntinityRatio = (float) αυτό.infraredframedata [i] / InfraredSourceValueMaximum; // 2. διαιρώντας από το // (μέση τιμή σκηνής * τυπικές αποκλίσεις) intensityRatio /= = Infraredscenevalueaeremery * infraredscenestandardDeviations; // 3. Περιορισμός της τιμής στο υπέρυθρο EntyStyRatio = Μαθηματικά.Min (infraredoutputvaluemaximum, ένταση); // 4. Περιορισμός της χαμηλότερης αξίας υπέρυθρου εξοπλισμού EntyStyRatio = Μαθηματικά.Max (infraredoutputValueMinimum, ένταση); // 5. μετατρέποντας την κανονικοποιημένη τιμή σε ένα byte και χρησιμοποιώντας // το αποτέλεσμα ως εξαρτήματα RGB που απαιτούνται από την εικόνα ένταση byte = (byte) (EntyssRatio * 255.0f); Αυτό.infraredPixel [colorpixelindex ++] = ένταση; //Μπλε Αυτό.infraredPixel [colorpixelindex ++] = ένταση; //Πράσινος Αυτό.infraredPixel [colorpixelindex ++] = ένταση; //Το κόκκινο Αυτό.infraredPixel [colorpixelindex ++] = 255; //Αλφα > > >

Δημόσια σφραγισμένη μερική τάξη MainPage: σελίδα < // convertInfraredDatatopixels () πριν από αυτό. ιδιωτικό κενό renderpixelarray (byte [] pixels)  εικονοστοιχεία.Copyto (αυτό.bitmap.Pixelbuffer); Αυτό.bitmap.Ακυρώ(); Προϋποθέσεις.Πηγή = αυτό.bitmap; > >

& ltgrid background = "" & gt & Ltgrid Margin = "30" & GT & Ltgrid.Rowdefinitions & GT & ltrowdefinition Ύψος = "70"/& GT & ltrowdefinition Ύψος = "*"/& GT & ltrowdefinition Ύψος = "100"/& GT & LT/πλέγμα.Rowdefinitions> & LttextBlock Grid.Σειρά = "0" Style = "" Text = "Kinect για Windows 2"/> & Ltimage X: Name = "FramedIsPlayImage" Grid.Σειρά = "1" Stretch = "Uniform"/> & LT/Grid> & LT/Grid>

Υπέρυθρη εικόνα

Για διασκέδαση, δοκιμάστε να απενεργοποιήσετε τα φώτα. Το υπέρυθρο φως είναι αόρατο για τους ανθρώπους και έτσι η κάμερα λειτουργεί ακόμη και σε πλήρη σκοτάδι, αυτή είναι η βάση για το πώς λειτουργεί το νυχτερινό όραμα.

  • Ως προαιρετική εργασία, δοκιμάστε να αλλάξετε τις τιμές const που είχαν οριστεί στο βήμα 4 αυτής της άσκησης και δείτε τη διαφορά που κάνουν στην προκύπτουσα έξοδο πλαισίου. Θα δείτε το βάθος ορατότητας και τη φωτεινότητα της αλλαγής εικόνας ανάλογα με αυτές τις τιμές.
  • Εργαστήριο 2: Εμφάνιση δεδομένων υπέρυθρης ακτινοβολίας

    Αυτή η άσκηση θα σας δείξει πώς να παρουσιάσετε χρήσιμα δεδομένα εντοπισμού σφαλμάτων σχετικά με το σημερινό υπέρυθρο πλαίσιο και επίσης την τρέχουσα κατάσταση του Kinect. Αυτή η άσκηση θα σας βοηθήσει με την αντιμετώπιση προβλημάτων τυχόν προβλημάτων με το Kinect αργότερα και για να επισημάνετε τη διαφορά ανάλυσης μεταξύ των πλαισίων στις επόμενες ασκήσεις.

    Για να ανακτήσετε και να εμφανίσετε δεδομένα πλαισίου από το Kinect 2, ακολουθήστε τα παρακάτω βήματα:

    Εικόνα διαμόρφωσης

    1. Πρώτον, ίσως έχετε παρατηρήσει ότι το Σχεδιαστής Κατά την προβολή του XAML δεν είναι διαθέσιμο κατά την κατασκευή για αρχιτεκτονικές X64. Οτι&rsquo;είναι ωραία επειδή το Kinect 2 είναι επίσης συμβατό με την αρχιτεκτονική X86, την οποία μπορείτε να μεταβείτε τώρα:
      1. Κάντε κλικ ΧΤΙΖΩ έπειτα Διαχειριστής διαμόρφωσης… Για να ανοίξετε τον διαχειριστή διαμόρφωσης.
      2. Κάντε κλικ στο αναπτυσσόμενο πλαίσιο κάτω Ενεργός λύση Πλατφόρμα: και επιλέξτε x86.
      3. Κάντε κλικ Κλείσε.
      4. Τώρα ανοίξτε τις ιδιότητες του έργου κάνοντας δεξί κλικ στο έργο Kinect2Sample στο Solution Explorer και, στη συνέχεια, κάνοντας κλικ στο κλικ Ιδιότητες.
      5. Κάντε κλικ στο Χτίζω καρτέλα στα αριστερά, στη συνέχεια δίπλα Πλατφόρμα: Επιλέξτε x86 από το αναπτυσσόμενο.
      6. Κάντε κλικ ΑΡΧΕΙΟ, έπειτα Αποθήκευση όλων ή χτύπημα Ctrl + Shift + S Για να αποθηκεύσετε όλα τα αρχεία.
      7. Οικοδομώ και τρέξτε Η εφαρμογή για έλεγχο για σφάλματα.
    2. Τα πράγματα που πρέπει να επικεντρωθείτε είναι τα Κατάσταση του Kinect (εάν ανταποκρίνεται ή όχι) και το Τρέχουσα ανάλυση του πλαισίου (που είναι ενδιαφέρον τώρα, και αργότερα όταν το εργαστήριο αλλάζει τον τύπο πλαισίου). Είναι αρκετά εύκολο να πάρει αυτές τις τιμές σε κώδικα πίσω. Για να ενεργοποιήσετε το XAML να δεσμεύεται με τις τιμές κατάστασης, αν αλλάξει, πρέπει να εφαρμόσετε το InotifypropertyChanged διασύνδεση στο Κύρια σελίδα τάξη. Τότε ο κώδικας θα πυροδοτήσει το ακίνητο που άλλαξε το συμβάν όταν αλλάξει η κατάσταση και όταν αλλάξει η περιγραφή πλαισίου. Για να το ρυθμίσετε, αντιγράψτε πρώτα τον ακόλουθο επισημασμένο κώδικα στα σχετικά τμήματα του Κύρια σελίδα Κατηγορία για αρχικοποίηση και χρήση μεταβλητών ιδιοτήτων:

      χρησιμοποιώντας σύστημα.ComponentModel; το χώρο ονομάτων Kinect2Sample < public sealed partial class MainPage : Page, InotifypropertyChanged < // . consts and other private variables. private KinectSensor kinectSensor = null; ιδιωτικό String StatuStext = null; ιδιωτικό writeablebitmap bitmap = null; ιδιωτική framedescription currentFramedescription; // μεταβλητές υπέρυθρου πλαισίου. δημόσια εκδήλωση PropertyChangedEventHandler PropertyChanged; δημόσιο String StatuStext  παίρνω σειρά  εάν αυτό.ακουγλικό != αξία)  Αυτό.StatuStext = τιμή εάν αυτό.Ακινητοποιημένος != null)  Αυτό.(Αυτό, νέο PropertyChangedEventArgs ("StatuStext")); > > > > δημόσια framedescription currentFramedescription  παίρνω σειρά  εάν αυτό. CurrentFramedescription!= αξία)  Αυτό. CurrentFramedescription = Value; εάν αυτό.Ακινητοποιημένος != null)  Αυτό.(Αυτό, νέο PropertyChangedEventArgs ("currentFramedescription"); > > > > // . >>

      Public MainPage () < // . // create the bitmap to display this.bitmap = new WriteableBitmap(infraredFrameDescription.Width, infraredFrameDescription.Height); Αυτό.CurrentFramedescription = thefraredFramedescription; // Ρυθμίστε τον ειδοποιητή συμβάντος isAvailableChanged Αυτό.κινητοποιητής.IsAvailablechanged += Αυτό.SENSOR_ISAVAILABLECHANGED; // Χρησιμοποιήστε το αντικείμενο παραθύρου ως μοντέλο προβολής σε αυτό το παράδειγμα Αυτό.DataContext = αυτό; // Ανοίξτε τον αισθητήρα αυτό.κινητοποιητής.Ανοιξε(); Αυτό.Initializecomponent (); > ιδιωτικό κενό SENSOR_ISAVAILABLECHANGED (αποστολέας KINESTENSENSOR, Isavailablechangedeventargs args)  Αυτό.Statustext = αυτό.κινητοποιητής.Είναι διαθέσιμο ? "Τρέξιμο": "Δεν είναι διαθέσιμο" > 

      & LttextBlock Grid.Σειρά = "0" style = "" text = "Kinect για Windows 2"/& GT & Ltstackpanel Grid.Σειρά = "0" προσανατολισμός = "οριζόντια" HorizontalAlignment = "Δεξιά" VerticalAlignment = "Bottom" & GT & LTTEXTBLOCK TEXT = "Κατάσταση Kinect:"/& GT & lttextBlock text = ""/& gt & lttextBlock Text = ", FrameWidth"/& GT & lttextBlock Text = ", FrameHeight"/& GT & LT/Stackpanel & GT & Ltimage X: Name = "FramedIsPlayImage" Grid.Σειρά = "1" stretch = "Uniform"/& GT

      Δημιουργία εικόνας

      Δοκιμάστε να αποσυνδέσετε το Kinect και να δείτε την αλλαγή κατάστασης. Στη συνέχεια, αν συνδέσετε το kinect πίσω, η κατάσταση θα ενημερωθεί και η ροή θα επανέλθει.

      Περίληψη

      Αυτό το εργαστήριο σας έχει διδάξει πώς να Ανακτήστε και χρησιμοποιήστε ένα υπέρυθρο πλαίσιο από τη συσκευή Kinect 2, και Χρησιμοποιήστε αυτά τα δεδομένα πλαισίου για να δημιουργήσετε ένα ορατό bitmap να είναι Εμφανίζεται στο XAML.

      Είναι ενδιαφέρον να σημειωθεί ότι το μεγαλύτερο μέρος αυτής της διαδικασίας είναι χειροκίνητη. Τα δεδομένα από το Υπερκεραμένο πλαίσιο δεν είναι χρησιμοποιήσιμο μέχρι αυτό&rsquo;μετατρέπεται σε bitmap. Αυτό είναι από το σχεδιασμό, καθώς υπάρχουν πολλές χρήσεις του υπέρυθρου φωτός πέρα ​​από τη μετατροπή του σε μια ορατή εικόνα. Το Kinect 2 χρησιμοποιεί την υπέρυθρη κάμερα για να υπολογίσει τα γνωστά σώματα και τα σχήματα σε συνθήκες χαμηλού φωτισμού. Αυτός είναι ο λόγος για τον οποίο η επίλυση του υπέρυθρου πλαισίου είναι τόσο χαμηλή: ταιριάζει με το ψήφισμα που παρατηρείται από το Depthframe Για να υπολογίσετε αυτό που είναι και δεν είναι&rsquo;ένα άτομο.

      Στο επόμενο εργαστήριο, θα δείτε τη διαφορά ανάλυσης μεταξύ του χρωμάτων και του infraredframe τώρα που έχετε παρουσιάσει τα δεδομένα πλαισίου στο XAML.

      Υπάρχει διαθέσιμος κώδικας που είναι η ολοκληρωμένη λύση κώδικα του έργου σε αυτό το εργαστήριο. Το επόμενο εργαστήριο θα ξεκινήσει από αυτόν τον κωδικό.

    Λειτουργεί το Kindle στα Windows 10 Apakah Keamanan Internet Kaspersky memiliki uang yang aman?

    Related Posts

    how_to_stay_safe_on_onlyfans_5

    Νίσα

    OnlyFans Free Pages vs Paid: How Access Differs

    onlyfans_help_center

    Νίσα

    Budgeting Tips and PPV Across Free OnlyFans Pages

    6a0b117e02549eec1a0db52c_infographic_user_growth_bar_chart-1

    Νίσα

    Safe Browsing Protocols for Zero-Dollar OnlyFans Pages

    banner
    banner

    PROMO

    racavedigger.com
    © racavedigger.com 2026