OpenGL de プログラミング - OpenCV::アニメーション2
現在地 >> メニュー >> サンプルコード::OpenCV >> OpenCV::アニメーション >> OpenCV::アニメーション2

問題


以下の画像を読み込み表示し、その画像を背景としてOpenCV::アニメーションを行え。

画像

答え


#include <cv.h>
#include <highgui.h>
#include <cstdio>
#include <cmath>
#include <iostream>

using namespace std;

inline void CV_MAIN_LOOP();




int main( int argc, char **argv)
{


cvNamedWindow("window",CV_WINDOW_AUTOSIZE);

CV_MAIN_LOOP();

return 0;
}


/********** ここからメインループ ********************/
inline void CV_MAIN_LOOP()
{

#define PI_OVER_180 0.0174532925

IplImage *imgA=cvLoadImage("test2.jpg",CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR);
IplImage *tmp = cvCloneImage(imgA);



int frame=0;
char key;
int x,y;

while(1)
{
x = imgA->width/2 + int(50*cos(frame*PI_OVER_180));
y = imgA->height/2 + int(50 *sin(frame*PI_OVER_180));
cvCircle(tmp,cvPoint(x,y),3,cvScalar(255,0,0),CV_FILLED);
cvShowImage("window",tmp);

cvCopy(imgA,tmp);


key=(char)cvWaitKey(1);
if(key=='\033') break;

frame+=1;
if(frame>360) frame = 0;
}

cvReleaseImage( &imgA );
cvReleaseImage( &tmp);
cvDestroyWindow("window");

}