Menu

WPF Posts

Kinect 2 : Détection du squelette (Part 1)

Kinect 2 : Détection du squelette (Part 1)

Dans ce second billet consacré à la détection de squelette avec Kinect 2, nous allons regarder ensemble comment récupérer les informations, ouvrir les flux et reconnaître un squelette qui interagi avec le capteur. Je vous rappelle que le sommaire des articles se trouve par ici.

Si vous n’avez pas installer le SDK c’est le moment de le faire en le téléchargeant à cette adresse, il vous faudra par contre Visual Studio 2013 pour pouvoir l’utiliser.

A savoir pour commencer

Pour ceux qui ont déjà barouder sur le SDK de Kinect 1, il y a une chose qui a vraiment changé. Avant, quand une application demandais de l’information au capteur elle le monopolisait et seul cette application pouvais utiliser Kinect, de plus il fallait bien fermer l’accès au capteur sous peine que la prochaine application peine à ouvrir les flux. Maintenant, pour Kinect 2, la logique est un peu différente car il y a maintenant un service résident qui est le seul à pouvoir récupérer les données du capteur.

En d’autre terme, votre application ne va plus demander l’accès au capteur, mais consommer les flux mis à disposition par le service. Ce principe permet alors d’avoir autant d’application que l’on souhaite qui s’exécute simultanément. Le service a donc pour rôle de capter les données et de les distribuer aux applications qui se sont enregistré à lui. Ce qui a aussi pour effet de ne plus vraiment gérer l’ouverture et la fermeture de Kinect.

Voici maintenant comment accéder à ces flux et en extraire les informations du squelette.

Première étape : Connexion aux flux

Dans un premier temps, il faut que votre application se connecte au service Kinect et préciser les flux que vous voulez suivre (Squelette, vidéo, son, etc.). Pour se faire nous devons récupérer une instance du capteur afin d’interagir avec lui, cela se fait avec le code ci-dessous :

KinectSensor sensor = KinectSensor.GetDefault();

Read More

Black Camera Control

Le Black Camera Control sert  à afficher un flux d’une webcam en WPF, il est fournis avec le code source et une petite application de contrôle pour visionner et faire des captures d’écrans.

J’ai eu un besoin simple sur WPF, pouvoir afficher le flux d’une Webcam et pouvoir en faire des captures. Ce besoin simple n’est pourtant pas si facile en réalité. N’ayant pas le temps de me plonger dans les APIs profondes de WPF, je me suis donc tourner vers notre ami commun Google. Après une brève recherche, je suis tombé sur bien des sites avec bien sûr les 2 ou 3 mêmes bouts de code ou projet CodePlex qui reviennent constamment. J’ai tout testé et entre ceux qui plantent et ceux qui ne font pas exactement ce que je veux, je n’ai pas trouvé mon bonheur.

J’ai donc décidé de le faire moi-même en repartant de ce que j’ai trouvé précédemment. L’alternative la plus proche pour moi était de faire un contrôle qui se fonde sur AForge, un framework de gestion d’image disponible avec les packages NuGets. J’ai donc fait mon petit contrôle et au vu de ce que j’ai lu sur Internet, je ne suis pas le seul a vouloir un contrôle dans le genre.

J’ai donc publié ce contrôle sur CodePlex à cette adresse :

https://blackcameracapture.codeplex.com/

Read More

Application Kinect !

Ca y est, nous avons réalisé une vidéo de notre application Kinect for Windows à destination d’iDTGV, une publicité interactive qui a d’ailleurs fait l’objet d’une session au Techdays 2012 par votre serviteur.

« Cette vidéo présente notre projet Kinect for Windows de « Publicité interactive ». La finalité du concept de publicité interactive avec Kinect est de recréer une expérience positive avec la marque. Pour illustrer ce concept nous avons décidé de réaliser un partenariat avec iDTGV.

Ce projet a été réalisé avec une équipe pluri-disciplinaire (Designer, Graphiste, Developpeur) et a mis en avant les problématiques de développement des gestuelles avec Kinect d’une part, et de rendu visuel (XNA) d’autre part. »

Read More

Dependency Property : Trucs et astuces

Lors des développements en WPF on a souvent besoin d’écrire des propriétés de dépendances pour nos objets. En dehors de la déclaration simple de notre propriété, il y a quelques éléments qui méritent d’être connue. Dans l’exemple qui va suivre, je vais écrire une propriété de dépendance appelée « MaProp », qui sera un Int32 et qui ne peut prendre des valeurs que de 1 à 100.

1 – Déclaration de la propriété

Il faut bien évidement déclarer sa propriété, dans Visual Studio il y un a snipet pour ça : propdp.

public static readonly DependencyProperty MaPropProperty = DependencyProperty.Register("MaProp", typeof(int), typeof(MaClasse), new UIPropertyMetadata(1));

Dans les conventions de nommage, on ajoute toujours « Property » sur l’a déclaration statique, ensuite pour initialiser celle-ci, on peut donner une valeur par défaut dans le dernier paramètre, ici 1.

Read More