Medical Imaging Interaction Toolkit  2018.4.99-bd7b41ba
Medical Imaging Interaction Toolkit
mitk::OpenCVVideoSource Class Reference

#include <mitkOpenCVVideoSource.h>

Inheritance diagram for mitk::OpenCVVideoSource:
Collaboration diagram for mitk::OpenCVVideoSource:

Public Types

typedef itk::RGBPixel< unsigned char > CharPixelType
 
typedef itk::FixedArray< float, 3 > HSVPixelType
 
typedef itk::Image< CharPixelType, 2 > RGBPixelImageType
 
typedef itk::Image< HSVPixelType, 2 > HSVPixelImageType
 
typedef itk::ImageRegionIterator< RGBPixelImageTypeRGBConstIteratorType
 
typedef itk::ImageRegionIterator< HSVPixelImageTypeHSVConstIteratorType
 

Public Member Functions

 mitkClassMacro (OpenCVVideoSource, VideoSource)
 
Pointer Clone () const
 
virtual void SetVideoFileInput (const char *filename, bool repeatVideo, bool useCVCAMLib=false)
 
virtual void SetVideoCameraInput (int cameraindex, bool useCVCAMLib=false)
 
virtual double GetVideoCaptureProperty (int property_id)
 
virtual int SetVideoCaptureProperty (int property_id, double value)
 
virtual void GetCurrentFrameAsOpenCVImage (IplImage *image)
 
cv::Mat GetImage () override
 
virtual const IplImage * GetCurrentFrame ()
 
virtual void GetCurrentFrameAsItkHSVPixelImage (HSVPixelImageType::Pointer &Image)
 
void FetchFrame () override
 
unsigned char * GetVideoTexture () override
 
void StartCapturing () override
 
void StopCapturing () override
 
virtual IplImage * FlipImage (IplImage *input)
 
virtual void EnableOnlineImageUndistortion (mitk::Point3D focal, mitk::Point3D principal, mitk::Point4D distortion)
 
virtual void DisableOnlineImageUndistortion ()
 
virtual bool OnlineImageUndistortionEnabled () const
 
void PauseCapturing () override
 
virtual std::string GetVideoFileName () const
 
virtual void SetEnableXAxisFlip (bool enable)
 
virtual void SetEnableYAxisFlip (bool enable)
 
virtual short GetGrabbingDeviceNumber () const
 
virtual bool GetRepeatVideo ()
 
virtual void SetRepeatVideo (bool _arg)
 
- Public Member Functions inherited from mitk::VideoSource
 mitkClassMacroItkParent (VideoSource, itk::Object)
 
virtual bool IsCapturingEnabled () const
 
virtual int GetImageWidth ()
 
virtual int GetImageHeight ()
 
virtual unsigned long GetFrameCount () const
 
virtual bool GetCapturePaused () const
 
- Public Member Functions inherited from mitk::OpenCVImageSource
 mitkClassMacroItkParent (OpenCVImageSource, itk::Object)
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

 OpenCVVideoSource ()
 
 ~OpenCVVideoSource () override
 
void Reset ()
 
void UpdateVideoTexture ()
 
void sleep (unsigned int ms)
 
void RGBtoHSV (float r, float g, float b, float &h, float &s, float &v)
 
- Protected Member Functions inherited from mitk::VideoSource
 VideoSource ()
 
 ~VideoSource () override
 

Protected Attributes

CvCapture * m_VideoCapture
 
IplImage * m_CurrentImage
 
unsigned char * m_CurrentVideoTexture
 
IplImage * m_PauseImage
 
std::string m_VideoFileName
 saves the video file name (is empty if a grabbing device is used or if this is not initialized) More...
 
short m_GrabbingDeviceNumber
 saves the grabbing device number (is -1 if a videofilename is used or if this is not initialized) More...
 
bool m_RepeatVideo
 
bool m_UseCVCAMLib
 
bool m_UndistortImage
 
mitk::UndistortCameraImage::Pointer m_UndistortCameraImage
 
bool m_FlipXAxisEnabled
 
bool m_FlipYAxisEnabled
 
- Protected Attributes inherited from mitk::VideoSource
unsigned char * m_CurrentVideoTexture
 
int m_CaptureWidth
 
int m_CaptureHeight
 
bool m_CapturingInProcess
 
unsigned long m_FrameCount
 
bool m_CapturePaused
 

Detailed Description

Interface for acquiring video data using Intel's OPENCV library. Video data may either be provided from a file or a grabbing device. At the moment, OPENCV includes two separated modules for this grabbing, but only HighGui is used here. Initialize via SetVideoFileInput() or SetVideoCameraInput(), start processing with StartCapturing();

Definition at line 39 of file mitkOpenCVVideoSource.h.

Member Typedef Documentation

◆ CharPixelType

typedef itk::RGBPixel< unsigned char > mitk::OpenCVVideoSource::CharPixelType

Definition at line 43 of file mitkOpenCVVideoSource.h.

◆ HSVConstIteratorType

Definition at line 48 of file mitkOpenCVVideoSource.h.

◆ HSVPixelImageType

◆ HSVPixelType

typedef itk::FixedArray<float,3> mitk::OpenCVVideoSource::HSVPixelType

Definition at line 44 of file mitkOpenCVVideoSource.h.

◆ RGBConstIteratorType

Definition at line 47 of file mitkOpenCVVideoSource.h.

◆ RGBPixelImageType

Constructor & Destructor Documentation

◆ OpenCVVideoSource()

mitk::OpenCVVideoSource::OpenCVVideoSource ( )
protected

Definition at line 17 of file mitkOpenCVVideoSource.cpp.

◆ ~OpenCVVideoSource()

mitk::OpenCVVideoSource::~OpenCVVideoSource ( )
overrideprotected

Definition at line 31 of file mitkOpenCVVideoSource.cpp.

References Reset().

Member Function Documentation

◆ Clone()

Pointer mitk::OpenCVVideoSource::Clone ( ) const

◆ DisableOnlineImageUndistortion()

void mitk::OpenCVVideoSource::DisableOnlineImageUndistortion ( )
virtual

Definition at line 263 of file mitkOpenCVVideoSource.cpp.

References m_UndistortImage.

◆ EnableOnlineImageUndistortion()

void mitk::OpenCVVideoSource::EnableOnlineImageUndistortion ( mitk::Point3D  focal,
mitk::Point3D  principal,
mitk::Point4D  distortion 
)
virtual

◆ FetchFrame()

void mitk::OpenCVVideoSource::FetchFrame ( )
overridevirtual

◆ FlipImage()

IplImage * mitk::OpenCVVideoSource::FlipImage ( IplImage *  input)
virtual

Definition at line 363 of file mitkOpenCVVideoSource.cpp.

References m_FlipXAxisEnabled, and m_FlipYAxisEnabled.

Referenced by GetVideoTexture().

◆ GetCurrentFrame()

const IplImage * mitk::OpenCVVideoSource::GetCurrentFrame ( )
virtual

Definition at line 100 of file mitkOpenCVVideoSource.cpp.

References m_CurrentImage.

Referenced by QmitkOpenCVVideoControls::NewFrameAvailable().

◆ GetCurrentFrameAsItkHSVPixelImage()

void mitk::OpenCVVideoSource::GetCurrentFrameAsItkHSVPixelImage ( HSVPixelImageType::Pointer &  Image)
virtual

◆ GetCurrentFrameAsOpenCVImage()

void mitk::OpenCVVideoSource::GetCurrentFrameAsOpenCVImage ( IplImage *  image)
virtual

Definition at line 105 of file mitkOpenCVVideoSource.cpp.

References m_CurrentImage.

◆ GetGrabbingDeviceNumber()

virtual short mitk::OpenCVVideoSource::GetGrabbingDeviceNumber ( ) const
virtual

Returns the GrabbingDeviceNumber (maybe -1 if a video file is used)

Referenced by QmitkOpenCVVideoControls::SetVideoBackground().

◆ GetImage()

cv::Mat mitk::OpenCVVideoSource::GetImage ( void  )
overridevirtual
Returns
a copy of the image as opencv 2 Mat

Implements mitk::OpenCVImageSource.

Definition at line 90 of file mitkOpenCVVideoSource.cpp.

References m_CurrentImage.

◆ GetRepeatVideo()

virtual bool mitk::OpenCVVideoSource::GetRepeatVideo ( )
virtual

◆ GetVideoCaptureProperty()

double mitk::OpenCVVideoSource::GetVideoCaptureProperty ( int  property_id)
virtual

◆ GetVideoFileName()

virtual std::string mitk::OpenCVVideoSource::GetVideoFileName ( ) const
virtual

Returns the video file name (maybe empty if a grabbing device is used)

Referenced by QmitkOpenCVVideoControls::SetVideoBackground().

◆ GetVideoTexture()

unsigned char * mitk::OpenCVVideoSource::GetVideoTexture ( )
overridevirtual
Returns
a pointer to the image data array for opengl rendering.

Implements mitk::VideoSource.

Definition at line 73 of file mitkOpenCVVideoSource.cpp.

References FetchFrame(), FlipImage(), m_CurrentImage, m_CurrentVideoTexture, m_FlipXAxisEnabled, m_FlipYAxisEnabled, and UpdateVideoTexture().

◆ mitkClassMacro()

mitk::OpenCVVideoSource::mitkClassMacro ( OpenCVVideoSource  ,
VideoSource   
)

◆ New()

static Pointer mitk::OpenCVVideoSource::New ( )
static

◆ OnlineImageUndistortionEnabled()

bool mitk::OpenCVVideoSource::OnlineImageUndistortionEnabled ( ) const
virtual
Returns
true if image undistorsion is enabled

Definition at line 223 of file mitkOpenCVVideoSource.cpp.

References m_UndistortCameraImage.

◆ PauseCapturing()

void mitk::OpenCVVideoSource::PauseCapturing ( )
overridevirtual

toggles m_CapturePaused In Subclasses this function can be overwritten to take measurs to provide a pause image, BUT DO NOT FORGET TO TOGGLE m_CapturePaused

Reimplemented from mitk::VideoSource.

Definition at line 228 of file mitkOpenCVVideoSource.cpp.

References mitk::VideoSource::m_CapturePaused, m_CurrentImage, m_PauseImage, m_UndistortCameraImage, and m_UndistortImage.

Referenced by QmitkOpenCVVideoControls::on_PlayButton_clicked(), QmitkOpenCVVideoControls::on_VideoProgressSlider_sliderPressed(), QmitkOpenCVVideoControls::on_VideoProgressSlider_sliderReleased(), and QmitkOpenCVVideoControls::Play().

◆ Reset()

◆ RGBtoHSV()

void mitk::OpenCVVideoSource::RGBtoHSV ( float  r,
float  g,
float  b,
float &  h,
float &  s,
float &  v 
)
protected

Definition at line 312 of file mitkOpenCVVideoSource.cpp.

Referenced by GetCurrentFrameAsItkHSVPixelImage().

◆ SetEnableXAxisFlip()

void mitk::OpenCVVideoSource::SetEnableXAxisFlip ( bool  enable)
virtual

Definition at line 413 of file mitkOpenCVVideoSource.cpp.

References m_FlipXAxisEnabled.

◆ SetEnableYAxisFlip()

void mitk::OpenCVVideoSource::SetEnableYAxisFlip ( bool  enable)
virtual

Definition at line 419 of file mitkOpenCVVideoSource.cpp.

References m_FlipXAxisEnabled.

◆ SetRepeatVideo()

virtual void mitk::OpenCVVideoSource::SetRepeatVideo ( bool  _arg)
virtual

◆ SetVideoCameraInput()

void mitk::OpenCVVideoSource::SetVideoCameraInput ( int  cameraindex,
bool  useCVCAMLib = false 
)
virtual

◆ SetVideoCaptureProperty()

int mitk::OpenCVVideoSource::SetVideoCaptureProperty ( int  property_id,
double  value 
)
virtual

◆ SetVideoFileInput()

void mitk::OpenCVVideoSource::SetVideoFileInput ( const char *  filename,
bool  repeatVideo,
bool  useCVCAMLib = false 
)
virtual

◆ sleep()

void mitk::OpenCVVideoSource::sleep ( unsigned int  ms)
protected

◆ StartCapturing()

void mitk::OpenCVVideoSource::StartCapturing ( )
overridevirtual

advices this class to start the video capturing. in this base implementation: toggles m_CapturingInProcess, resets m_FrameCount ATTENTION: this should be also done in subclasses overwriting this method

Reimplemented from mitk::VideoSource.

Reimplemented in mitk::VideoInputSource.

Definition at line 209 of file mitkOpenCVVideoSource.cpp.

References mitk::VideoSource::m_CapturingInProcess, and m_VideoCapture.

Referenced by QmitkOpenCVVideoControls::Play().

◆ StopCapturing()

void mitk::OpenCVVideoSource::StopCapturing ( )
overridevirtual

advices this class to stop the video capturing. in this base implementation: toggles m_CapturingInProcess, resets m_FrameCount ATTENTION: this should be also done in subclasses overwriting this method

Reimplemented from mitk::VideoSource.

Reimplemented in mitk::VideoInputSource.

Definition at line 217 of file mitkOpenCVVideoSource.cpp.

References mitk::VideoSource::m_CapturePaused, and mitk::VideoSource::m_CapturingInProcess.

Referenced by Reset(), and QmitkOpenCVVideoControls::Stop().

◆ UpdateVideoTexture()

void mitk::OpenCVVideoSource::UpdateVideoTexture ( )
protected

Member Data Documentation

◆ m_CurrentImage

◆ m_CurrentVideoTexture

unsigned char* mitk::OpenCVVideoSource::m_CurrentVideoTexture
protected

Definition at line 162 of file mitkOpenCVVideoSource.h.

Referenced by GetVideoTexture(), Reset(), and UpdateVideoTexture().

◆ m_FlipXAxisEnabled

bool mitk::OpenCVVideoSource::m_FlipXAxisEnabled
protected

Flag to enable or disable video flipping by X Axis.

Definition at line 187 of file mitkOpenCVVideoSource.h.

Referenced by FlipImage(), GetVideoTexture(), SetEnableXAxisFlip(), and SetEnableYAxisFlip().

◆ m_FlipYAxisEnabled

bool mitk::OpenCVVideoSource::m_FlipYAxisEnabled
protected

Flag to enable or disable video flipping by Y Axis.

Definition at line 192 of file mitkOpenCVVideoSource.h.

Referenced by FlipImage(), and GetVideoTexture().

◆ m_GrabbingDeviceNumber

short mitk::OpenCVVideoSource::m_GrabbingDeviceNumber
protected

saves the grabbing device number (is -1 if a videofilename is used or if this is not initialized)

Definition at line 172 of file mitkOpenCVVideoSource.h.

Referenced by Reset(), and SetVideoCameraInput().

◆ m_PauseImage

IplImage* mitk::OpenCVVideoSource::m_PauseImage
protected

Definition at line 164 of file mitkOpenCVVideoSource.h.

Referenced by PauseCapturing(), and Reset().

◆ m_RepeatVideo

bool mitk::OpenCVVideoSource::m_RepeatVideo
protected

Definition at line 175 of file mitkOpenCVVideoSource.h.

Referenced by FetchFrame(), and SetVideoFileInput().

◆ m_UndistortCameraImage

mitk::UndistortCameraImage::Pointer mitk::OpenCVVideoSource::m_UndistortCameraImage
protected

◆ m_UndistortImage

◆ m_UseCVCAMLib

bool mitk::OpenCVVideoSource::m_UseCVCAMLib
protected

Definition at line 178 of file mitkOpenCVVideoSource.h.

Referenced by Reset().

◆ m_VideoCapture

CvCapture* mitk::OpenCVVideoSource::m_VideoCapture
protected

◆ m_VideoFileName

std::string mitk::OpenCVVideoSource::m_VideoFileName
protected

saves the video file name (is empty if a grabbing device is used or if this is not initialized)

Definition at line 168 of file mitkOpenCVVideoSource.h.

Referenced by FetchFrame(), Reset(), and SetVideoFileInput().


The documentation for this class was generated from the following files: