2010-02-17 130 views
6

Necesito el código para rotar una imagen en C++ que funciona como la función imrotate de matlab. Por favor sugiera un buen enlace. O si alguien puede proporcionar el código para imrotate.Girar una imagen en C/C++

O al menos explique el algoritmo.

No es una tarea. Necesito este código para mi proyecto. Y podemos usar cualquier biblioteca o código externo.

Respuesta

8

OpenCV2.0 dispone de varias herramientas de visión artificial y procesamiento de imágenes. Específicamente, warpAffine (definiendo la matriz de rotación) resolverá su problema al rotar una imagen.

la matriz de transformación 2x3 menciona en la documentación es el siguiente: alt text

donde θ es el ángulo de rotación y t x y t y es la traducción a lo largo del x y y ejes respectivamente.

Puede obtener el código fuente here.

Además, OpenCV2.0 tiene muchas funciones MATLAB-esque como imread, etc. funciones de rotación de imagen

+1

(+1) Mi amigo usa esta lib y le encanta Mira aquí http://ashish-newday.blogspot.com/2009/12/mouse-cursor-position-control-using-our.html –

+1

Pero no hay imagen warpImage en openCV – avd

+1

Malo, lo actualicé a la función correcta 'warpAffine' – Jacob

1

Check esto espero que ayude.

Otras preguntas sobre el desbordamiento de la pila en la opinión de los expertos same topic.

3

Magick lo puede ayudar. Lea this PDF y busque rotar.

+0

Imagemagick, la mejor opción para usted – Craig

0

No hay una forma incorporada de lograr esto en C++, salvo escribir su propia función para manipular datos binarios, lo que produce otros problemas como "¿Cómo descomprimo un jpg/png en C++?"

Su mejor apuesta es una biblioteca de gráficos tercera persona tales como libSDL

+0

La pregunta es una manera perfectamente válida para solicitar una biblioteca que se pueda enlazar desde C++. – slim

+1

... ¿Creo que lo vinculé a una biblioteca enlazable? – meagar