Question

Je travaille sur une application qui détecte le rectangle le plus important dans une image, puis cherche à le faire pivoter de manière à ce que le bas à gauche du rectangle reste à l'origine, de la même manière que OSCAR fonctionne. Cependant, une fois que le rectangle le plus important est détecté, je ne suis pas sûr de savoir comment prendre en compte la composante de profondeur ou l'axe z, car le rectangle ne sera pas toujours "tête en avant". Tous les exemples pour approfondir ma compréhension seraient grandement appréciés. Ci-dessous, un exemple tiré du système OSCAR de l'IUPR.

alt texte http://quito.informatik.uni-kl.de/oscar/oscar.php?serverimage=img_0324.jpg&montage=use

Était-ce utile?

La solution

Dans ce cas, vous n'avez pas besoin de traiter les informations 3D, il s'agit simplement d'une fonction de mappage, d'un ensemble de coordonnées à un autre.

Regardez les transformations affines, elles sont capables de corriger de simples effets de biais et de perspective. Vous devriez pouvoir trouver un code qui calculera une transformation à partir des 4 points situés aux coins de votre rectangle.

Presque oublié - si "rapide" Il est vraiment important de simplifier le système en n’utilisant que des transformations de cisaillement simples combinées, bien que cela ait un impact négatif sur la qualité d’image des sujets très inclinés.

Autres conseils

En fait, je pense que vous pouvez vous en tirer avec quelque chose de beaucoup plus simple que L'approche de Mark .

  1. Une fois que vous avez les coordonnées 2D sur l'image asymétrique, réutilisez ces coordonnées en tant que coordonnées de texture.

  2. Dans un moteur de rendu, tracez un rectangle simple où les sommets de chaque coin sont mappés sur les sommets de l'image 2D inclinée (normalisés et transformés d'une autre manière dans le plan des coordonnées de texture de votre système de rendu).

Vous pouvez maintenant compter sur du matériel (avec OpenGL ou similaire) pour effectuer la correction à votre place ou écrire votre propre mappeur de texture:

Il faudra deviner le rapport de format, car nous disposons des informations 3D réelles. Cependant, vous pouvez vous contenter de simplement prendre la largeur et la hauteur maximales de votre rectangle asymétrique.

Cartographie de la texture de perspective par Chris Hecker

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top