Rotere et billede i C++/OpenCV

Tags:    c++

Hey,

Jeg skal rotere et billede ift. et given antal grader indtastet af brugeren.
Efter en masse søgen på internettet er jeg kommet forbi et par forskellige kodeforslag, men ingen har virket ordentligt for mig. Er der nogen der kender til en forholdsvis simpel kode der kan bruges til formålet?

Min foreløbige kode ser ud som følgende:

int main()
{
/* declare a new IplImage pointer, the basic
image data structure in OpenCV */
IplImage* newImg;
/* load an image named "???.jpg", 1 means
this is a color image */
newImg = cvLoadImage("test.jpg",1);
//create a new window
cvNamedWindow("Window", 1);
//display the image in the window
cvShowImage("Window", newImg);
//wait for key to close the window
cvWaitKey(0);
cvDestroyWindow( "Window" ); //destroy the window
cvReleaseImage( &newImg ); //release the memory for the image
return 0;
}



Jeg kender ikke noget til de funktioner, du bruger, men en anden måde - ganske vist temmelig besværlig, så det er muligvis ikke en løsning, du vil bruge - er at putte billedet på en polygon som "texture", og derefter rotere det med glRotatef funktionen. Hvis du ikke ved så meget om OpenGL, så kan du snuppe koden fra dkTekno's OpenGL-artikel her på siden:
http://udvikleren.dk/C/Article.aspx/136/

Information om glRotatef funktionen:
http://msdn2.microsoft.com/en-us/library/ms537148.aspx

Her har jeg lavet en funktion til at putte texture på en polygon. Du skal dog ændre den en lille smule hist og pist.
Fold kodeboks ind/udKode 


Variablen "textureID" er en global GLuint, altså

GLuint textureID;

i starten af .cpp-filen.



Indlæg senest redigeret d. 03.04.2008 21:03 af Bruger #8985
t