Tourner numpy tableau 2D
J'ai un ensemble de niveaux de gris des images en 2D les tableaux numpy.
J'ai besoin de faire pivoter les images sur un seul point (à l'intérieur) de différentes, float angles. La rotation n'a pas besoin d'être en place, et je vous le permettre (bien sûr, si j'ai bien expliqué à ce jour) pour l'interpolation.
Je voudrais rester dans numpy, car j'ai besoin d'effectuer des opérations numériques sur le résultat, mais je peux aussi (si c'est impossible) pour l'étape in/out; pour exemple, j'ai essayé à l'aide de PIL, à savoir l'Image.tourner(theta) mais ne savent pas comment l'appliquer à mes tableaux, et comment obtenir un tableau arrière.
Vous remercie pour votre intervention.
Vous pouvez le faire directement dans numpy, mais pour la conversion d'avant en arrière, voir effbot.org/zone/pil-numpy.htm.
Merci pour les conseils, je viens de remarquer cette boîte!
votre second lien a une faute de frappe (nom de domaine doit être scikit-image.org), tel qu'il est, il relie actuellement à un spammeur.
scikits-image
a été renommée pour scikit-image
après mon commentaire.OriginalL'auteur astabada | 2011-11-10
Vous devez vous connecter pour publier un commentaire.
Voir le commentaire de cgohlke 10 Nov '11 à 18:34:
Envisager scipy.ndimage.interpolation.maj() et rotate() pour interpolées les translations et les rotations de la 2D tableaux numpy.
Dans SciPy v1.1, je pense que c'est maintenant scipy.ndimage.rotate() plutôt que scipy.ndimage.l'interpolation.rotate().
OriginalL'auteur Vasco
Les opérations de base sont décrites dans le Wikipedia matrice de transformation page - je ne vais pas essayer de faire ascii de la matrice de l'art, ici, mais la sortie P' = R*P où P' est le point de sortie, R est la 2x2 matrice de transformation contenant des sinus et le cosinus de l'angle de rotation, et P est le point d'entrée. Si vous souhaitez tourner autour d'autre chose que de l'origine, puis la maj de l'origine avant de rotation: P' = T + R*(P-T) où T est la translation de coordonnées. La matrice de base opérations ne pas faire de l'interpolation, si vous n'êtes pas à l'aide d'un numpy à base de bibliothèque de traitement d'images, vous aurez envie de faire une inversion de transformer: pour chaque (valeur entière) de coordonnées en sortie, à trouver les (virgule flottante) les coordonnées du point qui devrait être tourné en elle, et d'interpoler la valeur du point d'entrée de pixels environnants.
OriginalL'auteur Dave