2017-06-20 4 views
0

Je voudrais prendre plusieurs images pivotées d'une pièce rectangulaire comme this et les faire pivoter de sorte que le côté long de la pièce soit parallèle à l'axe des x comme this en Python. Un ami a recommandé d'utiliser SVD, et d'après ce que je comprends, je dois utiliser le SVD Numpy ou SciPy, trouver la différence d'angle entre l'image et l'axe des x, et faire pivoter l'image par la différence d'angle. Je ne comprends pas complètement SVD, alors qu'est-ce que je fais une fois que j'ai obtenu le SVD?Rotation d'image en utilisant SVD en Python

Toute aide serait appréciée. Je vous remercie!

Répondre

0

SVD est similaire à PCA, il trouvera les axes "naturels" dans vos données (lire wikipedia ou tout autre doco pour une explication plus rigoureuse de ce que signifie "naturel"). La matrice U renvoyée par SVD est la matrice de rotation que vous recherchez (c'est-à-dire entre l'axe x-y d'origine de vos données et les axes "naturels" trouvés par SVD).

+0

Merci, j'ai regardé SVD et j'ai lu que dans le cas où vous avez une matrice carrée, la matrice 'U' peut être vue comme une matrice de rotation. Puisque mon image sera rectangulaire, comment utiliser la matrice 'U'? Est-ce que je multiplie 'U' et la matrice d'image? – mmy227

+0

Peu importe, je pense que je l'ai eu. – mmy227