#include <mitkMovieGeneratorOpenCV.h>


Public Types | |
| typedef MovieGeneratorOpenCV | Self |
| typedef MovieGenerator | Superclass |
| typedef itk::SmartPointer< Self > | Pointer |
| typedef itk::SmartPointer < const Self > | ConstPointer |
Public Member Functions | |
| virtual const char * | GetClassName () const |
| virtual void | SetFileName (const char *fileName) |
| filename under which movie is saved | |
| void | SetFourCCCodec (char *codec) |
Static Public Member Functions | |
| static Pointer | New () |
Protected Member Functions | |
| MovieGeneratorOpenCV () | |
| virtual bool | InitGenerator () |
| called directly before the first frame is added | |
| virtual bool | AddFrame (void *data) |
| used to add a frame | |
| virtual bool | TerminateGenerator () |
| called after the last frame is added | |
Protected Attributes | |
| const char * | m_sFile |
| name of output file | |
| int | m_dwRate |
| frame rate | |
Definition at line 34 of file mitkMovieGeneratorOpenCV.h.
| typedef itk::SmartPointer<const Self> mitk::MovieGeneratorOpenCV::ConstPointer |
Reimplemented from mitk::MovieGenerator.
Definition at line 39 of file mitkMovieGeneratorOpenCV.h.
| typedef itk::SmartPointer<Self> mitk::MovieGeneratorOpenCV::Pointer |
Reimplemented from mitk::MovieGenerator.
Definition at line 39 of file mitkMovieGeneratorOpenCV.h.
Reimplemented from mitk::MovieGenerator.
Definition at line 39 of file mitkMovieGeneratorOpenCV.h.
Reimplemented from mitk::MovieGenerator.
Definition at line 39 of file mitkMovieGeneratorOpenCV.h.
| mitk::MovieGeneratorOpenCV::MovieGeneratorOpenCV | ( | ) | [protected] |
Definition at line 23 of file mitkMovieGeneratorOpenCV.cpp.
References m_dwRate, and mitk::MovieGenerator::m_initialized.
{
m_initialized = false;
m_aviWriter = NULL;
m_dwRate = 20;
m_FourCCCodec = NULL;
}
| bool mitk::MovieGeneratorOpenCV::AddFrame | ( | void * | data ) | [protected, virtual] |
used to add a frame
Implements mitk::MovieGenerator.
Definition at line 107 of file mitkMovieGeneratorOpenCV.cpp.
| virtual const char* mitk::MovieGeneratorOpenCV::GetClassName | ( | ) | const [virtual] |
Reimplemented from mitk::MovieGenerator.
| bool mitk::MovieGeneratorOpenCV::InitGenerator | ( | ) | [protected, virtual] |
called directly before the first frame is added
Implements mitk::MovieGenerator.
Definition at line 39 of file mitkMovieGeneratorOpenCV.cpp.
{
m_width = m_renderer->GetRenderWindow()->GetSize()[0]; // changed from glGetIntegerv( GL_VIEWPORT, viewport );
m_height = m_renderer->GetRenderWindow()->GetSize()[1]; // due to sometimes strange dimensions
m_width -= 10; //remove colored boarders around renderwindows
m_height -= 10;
m_width -= m_width % 4; // some video codecs have prerequisites to the image dimensions
m_height -= m_height % 4;
m_currentFrame = cvCreateImage(cvSize(m_width,m_height),8,3); // creating image with widget size, 8 bit per pixel and 3 channel r,g,b
m_currentFrame->origin = 1; // avoid building a video with bottom up
/*
m_sFile = Name of the output video file.
CV_FOURCC = 4-character code of codec used to compress the frames. For example, CV_FOURCC('P','I','M','1') is MPEG-1 codec,
CV_FOURCC('M','J','P','G') is motion-jpeg codec etc.
CV_FOURCC('P','I','M','1') = MPEG-1 codec
CV_FOURCC('M','J','P','G') = motion-jpeg codec (does not work well)
CV_FOURCC('M', 'P', '4', '2') = MPEG-4.2 codec
CV_FOURCC('D', 'I', 'V', '3') = MPEG-4.3 codec
CV_FOURCC('D', 'I', 'V', 'X') = MPEG-4 codec
CV_FOURCC('U', '2', '6', '3') = H263 codec
CV_FOURCC('I', '2', '6', '3') = H263I codec
CV_FOURCC('F', 'L', 'V', '1') = FLV1 codec
List of FOURCC codes is available at http://msdn2.microsoft.com/en-us/library/ms867195.aspx
Under Win32 it is possible to pass -1 in order to choose compression
method and additional compression parameters from dialog.
m_dwRate = Framerate of the created video stream.
frame_size Size of video frames.
1 = If it is not zero, the encoder will expect and encode color frames, otherwise it will work with grayscale frames
(the flag is currently supported on Windows only).*/
if(m_FourCCCodec != NULL)
{
#ifdef WIN32
m_aviWriter = cvCreateVideoWriter(m_sFile,CV_FOURCC(m_FourCCCodec[0],m_FourCCCodec[1],m_FourCCCodec[2],
m_FourCCCodec[3]),m_dwRate,cvSize(m_width,m_height),1); //initializing video writer
#else
m_aviWriter = cvCreateVideoWriter(m_sFile,CV_FOURCC(m_FourCCCodec[0],m_FourCCCodec[1],m_FourCCCodec[2],
m_FourCCCodec[3]),m_dwRate,cvSize(m_width,m_height)); //initializing video writer
#endif
}
else
{
#ifdef WIN32
m_aviWriter = cvCreateVideoWriter(m_sFile,-1,m_dwRate,cvSize(m_width,m_height),1); //initializing video writer
#else
m_aviWriter = cvCreateVideoWriter(m_sFile,CV_FOURCC('X','V','I','D'),m_dwRate,cvSize(m_width,m_height)); //initializing video writer
#endif
}
if(!m_aviWriter)
{
std::cout << "errors initializing video writer...correct video file path? on linux: ffmpeg must be included in OpenCV.";
return false;
}
return true;
}
| static Pointer mitk::MovieGeneratorOpenCV::New | ( | ) | [static] |
Reimplemented from mitk::MovieGenerator.
| void mitk::MovieGeneratorOpenCV::SetFileName | ( | const char * | fileName ) | [virtual] |
filename under which movie is saved
Reimplemented from mitk::MovieGenerator.
Definition at line 33 of file mitkMovieGeneratorOpenCV.cpp.
{
m_sFile = fileName;
}
| void mitk::MovieGeneratorOpenCV::SetFourCCCodec | ( | char * | codec ) | [inline] |
Definition at line 44 of file mitkMovieGeneratorOpenCV.h.
{
m_FourCCCodec = codec;
}
| bool mitk::MovieGeneratorOpenCV::TerminateGenerator | ( | ) | [protected, virtual] |
called after the last frame is added
Implements mitk::MovieGenerator.
Definition at line 116 of file mitkMovieGeneratorOpenCV.cpp.
{
if (m_aviWriter)
{
cvReleaseVideoWriter(&m_aviWriter);
}
return true;
}
int mitk::MovieGeneratorOpenCV::m_dwRate [protected] |
frame rate
Definition at line 67 of file mitkMovieGeneratorOpenCV.h.
Referenced by MovieGeneratorOpenCV().
const char* mitk::MovieGeneratorOpenCV::m_sFile [protected] |
name of output file
Definition at line 64 of file mitkMovieGeneratorOpenCV.h.
1.7.2