3

Je suis récemment tombé sur this video et voudrais mettre en œuvre quelque chose de similaire. L'approche de base est claire: je dois seuiller l'image et vérifier si un objet virtuel entre en collision avec le premier plan restant. Au lieu d'implémenter la physique moi-même, j'aimerais utiliser un moteur comme Box2D. Mais comment intégrer l'image seuillée dans le moteur physique pour qu'il soit possible d'interagir avec des objets virtuels?Comment intégrer l'image d'une caméra dans un moteur physique?

Répondre

4

Vous souhaitez effectuer une détection de contours. Il existe des algorithmes open source pour cela. Alors que vous pouvez le seuil que vous suggérez, les bons algorithmes de détection de bord fonctionneront sans cela et pourraient être plus amusants car vous ne devriez pas avoir besoin du fond blanc uni pour obtenir des résultats intéressants. Découvrez OpenCV http://www.mathworks.com/products/imaq/demos.html?file=/products/demos/shipping/imaq/demoimaqsl_edgedetection.html pour les débutants.

Les détecteurs de bord produisent finalement des vecteurs en coordonnées de pixels en sortie. Vous devez les transformer en objets Box2D b2_staticBody qui se déplacent sous le contrôle du programme selon la même série chronologique que les images vidéo qui ont généré les bords. Vous pouvez maintenant ajouter des objets cinétiques à l'environnement Box2D et ils se comporteront comme si les bords étaient des solides fixes.

Enfin, vous devrez superposer la sortie Box2D sur les images vidéo. OpenCV devrait aider avec ça aussi. Ou vous pouvez utiliser un outil de montage vidéo.

Ce serait beaucoup plus de travail, mais vous pourriez même obtenir ce travail en temps réel. Notez que si vous avez accès à MATLAB, il dispose d'un détecteur de bord de cadence vidéo dans l'une des boîtes à outils.

Questions connexes