ここでやろうとしていることは、ビデオをロードして再生し、ビデオの再生中にフレームをキャプチャして、新しいウィンドウに出力することです。これは、以下のコードがatmを実行することです。
しかし、キャプチャしたフレームにブラーを追加し、しきい値の前後でエッジを滑らかにすることで、次のレベルに引き上げたいと思います。
#include<opencv\cv.h>
#include<opencv\highgui.h>
#include<opencv\ml.h>
#include<opencv\cxcore.h>
#include<fstream>
int main( int argc, char** argv ) {
//Main Window
cvNamedWindow( "DisplayVideo", CV_WINDOW_AUTOSIZE );
CvCapture* capture = cvCreateFileCapture( argv[1] ); //Video captured and stored in CAPTURE
IplImage* frame; //Image captured and stored in FRAME
int num=0;
char s [20];
while(1) {
num++;
frame = cvQueryFrame(capture);
if( !frame ) break;
cvShowImage( "DisplayVideo", frame );
char c = cvWaitKey(33);
if( c == 27 ) break;
if (c == 'f')
{
sprintf(s,"frame%d.jpg",num);
cvSaveImage(s,frame);
cvNamedWindow("FrameWindow", 0);
cvShowImage("FrameWindow",frame);
}
}
cvReleaseCapture( &capture );
cvDestroyWindow("DisplayVideo" );
}