OpenPose  1.0.0rc2
OpenPose: A Real-Time Multi-Person Key-Point Detection And Multi-Threading C++ Library
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Macros
op::Producer Class Referenceabstract

#include <producer.hpp>

Inherited by op::ImageDirectoryReader, and op::VideoCaptureReader.

Public Member Functions

 Producer (const ProducerType type)
 
virtual ~Producer ()
 
cv::Mat getFrame ()
 
virtual std::string getFrameName ()=0
 
void setProducerFpsMode (const ProducerFpsMode fpsMode)
 
ProducerType getType ()
 
virtual bool isOpened () const =0
 
virtual void release ()=0
 
virtual double get (const int capProperty)=0
 
virtual void set (const int capProperty, const double value)=0
 
virtual double get (const ProducerProperty property)=0
 
virtual void set (const ProducerProperty property, const double value)=0
 

Protected Member Functions

void checkFrameIntegrity (cv::Mat &frame)
 
void flipAndRotate (cv::Mat &cvMat) const
 
void ifEndedResetOrRelease ()
 
void keepDesiredFrameRate ()
 
virtual cv::Mat getRawFrame ()=0
 

Detailed Description

Producer is an abstract class to extract frames from a source (image directory, video file, webcam stream, etc.). It has the basic and common functions (e.g. getFrame, release & isOpened).

Constructor & Destructor Documentation

op::Producer::Producer ( const ProducerType  type)
explicit

Constructor of Producer.

Parameters
repeatWhenFinishedbool indicating whether the producer must be restarted after it finishes.
virtual op::Producer::~Producer ( )
virtual

Destructor of Producer. It is virtual so that any children class can implement its own destructor.

Member Function Documentation

void op::Producer::checkFrameIntegrity ( cv::Mat &  frame)
protected

Protected function which checks that the frames keeps their integry (some OpenCV versions might return corrupted frames within a video or webcam with a size different to the standard resolution). If the frame is corrupted, it is set to an empty cv::Mat.

Parameters
framecv::Mat with the frame matrix to be checked and modified.
void op::Producer::flipAndRotate ( cv::Mat &  cvMat) const
protected

It performs flipping and rotation over the desired cv::Mat.

Parameters
cvMatcv::Mat with the frame matrix to be flipped and/or rotated.
virtual double op::Producer::get ( const int  capProperty)
pure virtual

This function is a wrapper of cv::VideoCapture::get. It allows getting different properties of the Producer (fps, width, height, etc.). See the OpenCV documentation for all the available properties.

Parameters
capPropertyint indicating the property to be modified.
Returns
double returning the property value.

Implemented in op::VideoCaptureReader, op::ImageDirectoryReader, op::WebcamReader, op::VideoReader, and op::IpCameraReader.

virtual double op::Producer::get ( const ProducerProperty  property)
pure virtual
cv::Mat op::Producer::getFrame ( )

Main function of Producer, it retrieves and returns a new frame from the frames producer.

Returns
cv::Mat with the new frame.
virtual std::string op::Producer::getFrameName ( )
pure virtual

This function returns a unique frame name (e.g. the frame number for video, the frame counter for webcam, the image name for image directory reader, etc.).

Returns
std::string with an unique frame name.

Implemented in op::VideoCaptureReader, op::WebcamReader, op::ImageDirectoryReader, op::VideoReader, and op::IpCameraReader.

virtual cv::Mat op::Producer::getRawFrame ( )
protectedpure virtual

Function to be defined by its children class. It retrieves and returns a new frame from the frames producer.

Returns
cv::Mat with the new frame.

Implemented in op::VideoCaptureReader.

ProducerType op::Producer::getType ( )
inline

This function returns the type of producer (video, webcam, ...).

Returns
ProducerType with the kind of producer.
void op::Producer::ifEndedResetOrRelease ( )
protected

Protected function which checks that the frame producer has ended. If so, if resets or releases the producer according to mRepeatWhenFinished.

virtual bool op::Producer::isOpened ( ) const
pure virtual

This function returns whether the Producer instance is still opened and able to retrieve more frames.

Returns
bool indicating whether the Producer is opened.

Implemented in op::VideoCaptureReader, and op::ImageDirectoryReader.

void op::Producer::keepDesiredFrameRate ( )
protected

Protected function which forces the producer to get frames at the rate of get(CV_CAP_PROP_FPS).

virtual void op::Producer::release ( )
pure virtual

This function releases and closes the Producer. After it is called, no more frames can be retrieved from Producer::getFrame.

Implemented in op::VideoCaptureReader, and op::ImageDirectoryReader.

virtual void op::Producer::set ( const int  capProperty,
const double  value 
)
pure virtual

This function is a wrapper of cv::VideoCapture::set. It allows setting different properties of the Producer (fps, width, height, etc.). See the OpenCV documentation for all the available properties.

Parameters
capPropertyint indicating the property to be modified.
valuedouble indicating the new value to be assigned.

Implemented in op::VideoCaptureReader, op::ImageDirectoryReader, op::WebcamReader, op::VideoReader, and op::IpCameraReader.

virtual void op::Producer::set ( const ProducerProperty  property,
const double  value 
)
pure virtual
void op::Producer::setProducerFpsMode ( const ProducerFpsMode  fpsMode)

This function sets whether the producer must keep the original fps frame rate or extract the frames as quick as possible.

Parameters
fpsModeProducerFpsMode parameter specifying the new value.

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