Question

Quelqu'un a-t-il une idée de comment je peux mettre en œuvre cela ?J'aimerais avoir une fonction exactement comme impoly dans matlab ou l'outil "sections de polygone" dans imageJ, où vous cliquez pour former une section polygonale, puis chaque nœud peut être ajusté, etc.J'aimerais également avoir accès à cette fonction depuis Qt puisque j'essaie de créer une interface graphique pour un petit programme que j'ai écrit.

De plus, j'aimerais éviter d'appeler la fonction matlab car elle fait partie de la boîte à outils de traitement d'image qui n'est pas gratuite.Merci.

Était-ce utile?

La solution

Je pense que vous devrez coder cela vous-même.Il existe un excellent exemple dans Programmation GUI C++ avec Qt 4 livre (il y a une copie PDF qui circule en ligne ;Je pense que c'est légal) où ils vous montrent comment créer un diagramme avec des nœuds et des liens.Le chapitre s'intitule « Rendu basé sur les éléments avec la vue graphique ».

L'idée de base est que vous disposez de nœuds déplaçables, qui sont QGraphicsItems avec le ItemIsMovable drapeau réglé sur true, puis quelques liens qui les relient, qui sont QGraphicsLineItems.Tous ces éléments iraient dans un QGraphicsItem composite représentant le retour sur investissement, et tous iraient dans un QGraphicsScène, qui serait affiché par un QGraphicsView.

Conclusion :il n'y a pas de copie intégrée de la fonction MATLAB, mais tous les outils sont là pour vous.

Autres conseils

Je pense que la meilleure façon de mettre en œuvre utilise le cadre de la vue graphique QT. Créez une scène avec un élément affichant votre image dans le dos et ajoutez des objets de dragage sur le dessus représentant les coins de votre polygone.

Votre outil de sélection devrait probablement être une sous-classe de QGraphicsObject hébergeant les angles de polygones comme des articles enfants et un QGraphicspolygoniTem ci-dessous des coins étant mis à jour chaque fois que l'utilisateur réajuste la sélection. Comme QGraphicsObject hérite QObject, vous pouvez émettre des signaux avec un argument Qpolygonf ou Qpolygon chaque fois que la sélection change, en informant d'autres parties de votre application

Cette démonstration devrait être un bon exemple de la fonctionnalité d'angle-ajustement dont vous avez besoin.

QT PathStroke Demo

(Euh Eh bien, l'exemple implémente le dessin et glissant des points de contrôle à partir de zéro .. Je suis sûr que vous pouvez le faire à l'aide de qgraphicsellipseitem à la place et de réagir sur leurs changements de position)

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