0
votes

Comment faire pivoter au hasard un carré dans une matrice 2D?

Ma tâche de détecter un rectangle, peu importe où il se trouve dans une image. Pour cela, j'ai généré des pixels aléatoires et générés au hasard dans l'image. Il varie en forme et à la taille.

La seule chose qui manque, c'est que le rectangle est toujours à un angle droit. Je veux que le rectangle soit tourné de manière aléatoire.

ce que j'ai maintenant:

 Entrez l'image Description ici

ce que je veux:

Entrez la description de l'image ici

My Code Pour la première intrigue (droite): xxx


1 commentaires

Vous n'avez pas posé une question.


3 Réponses :


1
votes

Étant donné que votre image est remplie de pixels aléatoires, je recommanderais de dessiner le rectangle au milieu de l'image, puis de le faire pivoter (utilisez OpenCV pour cela, en particulier cv2.getrotationMatrix2D () et cv2.warpaffine () ), puis traduisez (décalage) dans une certaine direction afin que la position soit également aléatoire.

Une fois terminé avec rotation et traduction, vous pouvez clipser l'image à votre taille - en raison de la rotation que vous voudrez peut-être commencer par une image environ deux fois plus grande que le résultat que vous souhaitez obtenir.

Si vous avez besoin de plus d'aide avec rotation, voici un lien avec un tutoriel: https://www.pyimagesearch.com/2017/01/02/ROTE-Images-Correctement-with-opencV-and-pyThon/


1 commentaires

"En raison de la rotation, vous voudrez peut-être commencer par une image environ deux fois plus grande que le résultat que vous souhaitez obtenir" Que voulez-vous dire?



1
votes

Votre forme est simple, mais j'aime utiliser Einsum Pour des formes avec des centaines de points.

Vous pouvez obtenir l'idée de cela. S00 est juste un polygone représenté par un ndarray: xxx

 Entrez la description de l'image ici


0 commentaires

0
votes

J'ai fait quelques ajustements. Ils sont commentés dans le code: xxx

sortie:

image de sortie


0 commentaires