OpenPose  1.7.0
The first real-time multi-person system to jointly detect human body, hand, facial, and foot keypoints
op::Producer Class Referenceabstract

#include <producer.hpp>

Inheritance diagram for op::Producer:
op::FlirReader op::ImageDirectoryReader op::VideoCaptureReader op::IpCameraReader op::VideoReader op::WebcamReader

Public Member Functions

 Producer (const ProducerType type, const std::string &cameraParameterPath, const bool undistortImage, const int mNumberViews)
 
virtual ~Producer ()
 
Matrix getFrame ()
 
std::vector< MatrixgetFrames ()
 
virtual std::vector< MatrixgetCameraMatrices ()
 
virtual std::vector< MatrixgetCameraExtrinsics ()
 
virtual std::vector< MatrixgetCameraIntrinsics ()
 
virtual std::string getNextFrameName ()=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
 
double get (const ProducerProperty property)
 
void set (const ProducerProperty property, const double value)
 

Protected Member Functions

void checkFrameIntegrity (Matrix &frame)
 
void ifEndedResetOrRelease ()
 
void keepDesiredFrameRate ()
 
virtual Matrix getRawFrame ()=0
 
virtual std::vector< MatrixgetRawFrames ()=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).

Definition at line 14 of file producer.hpp.

Constructor & Destructor Documentation

◆ Producer()

op::Producer::Producer ( const ProducerType  type,
const std::string &  cameraParameterPath,
const bool  undistortImage,
const int  mNumberViews 
)
explicit

Constructor of Producer.

◆ ~Producer()

virtual op::Producer::~Producer ( )
virtual

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

Member Function Documentation

◆ checkFrameIntegrity()

void op::Producer::checkFrameIntegrity ( Matrix 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 Mat.

Parameters
frameMat with the frame matrix to be checked and modified.

◆ get() [1/2]

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::WebcamReader, op::VideoReader, op::IpCameraReader, op::ImageDirectoryReader, and op::FlirReader.

◆ get() [2/2]

double op::Producer::get ( const ProducerProperty  property)

Extra attributes that VideoCapture::get/set do not contain.

Parameters
propertyProducerProperty indicating the property to be modified.

◆ getCameraExtrinsics()

virtual std::vector<Matrix> op::Producer::getCameraExtrinsics ( )
virtual

It retrieves and returns the camera extrinsic parameters from the frames producer. Virtual class because FlirReader implements their own.

Returns
std::vector<Mat> with the camera extrinsic parameters.

Reimplemented in op::FlirReader.

◆ getCameraIntrinsics()

virtual std::vector<Matrix> op::Producer::getCameraIntrinsics ( )
virtual

It retrieves and returns the camera intrinsic parameters from the frames producer. Virtual class because FlirReader implements their own.

Returns
std::vector<Mat> with the camera intrinsic parameters.

Reimplemented in op::FlirReader.

◆ getCameraMatrices()

virtual std::vector<Matrix> op::Producer::getCameraMatrices ( )
virtual

It retrieves and returns the camera matrixes from the frames producer. Virtual class because FlirReader implements their own.

Returns
std::vector<Mat> with the camera matrices.

Reimplemented in op::FlirReader.

◆ getFrame()

Matrix op::Producer::getFrame ( )

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

Returns
Mat with the new frame.

◆ getFrames()

std::vector<Matrix> op::Producer::getFrames ( )

Analogous to getFrame, but it could return > 1 frame.

Returns
std::vector<Mat> with the new frame(s).

◆ getNextFrameName()

virtual std::string op::Producer::getNextFrameName ( )
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::VideoReader, op::IpCameraReader, op::ImageDirectoryReader, and op::FlirReader.

◆ getRawFrame()

virtual Matrix 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
Mat with the new frame.

Implemented in op::VideoCaptureReader.

◆ getRawFrames()

virtual std::vector<Matrix> op::Producer::getRawFrames ( )
protectedpure virtual

Function to be defined by its children class. It retrieves and returns a new frame from the frames producer. It is equivalent to getRawFrame when more than 1 image can be returned.

Returns
std::vector<Mat> with the new frames.

Implemented in op::VideoCaptureReader.

◆ getType()

ProducerType op::Producer::getType ( )
inline

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

Returns
ProducerType with the kind of producer.

Definition at line 80 of file producer.hpp.

◆ ifEndedResetOrRelease()

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.

◆ isOpened()

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::WebcamReader, op::VideoReader, op::VideoCaptureReader, op::IpCameraReader, op::ImageDirectoryReader, and op::FlirReader.

◆ keepDesiredFrameRate()

void op::Producer::keepDesiredFrameRate ( )
protected

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

◆ release()

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::getFrames.

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

◆ set() [1/2]

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::WebcamReader, op::VideoReader, op::IpCameraReader, op::ImageDirectoryReader, and op::FlirReader.

◆ set() [2/2]

void op::Producer::set ( const ProducerProperty  property,
const double  value 
)

Extra attributes that VideoCapture::get/set do not contain.

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

◆ setProducerFpsMode()

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: