OpenPose 1.0.0rc2 OpenPose: A Real-Time Multi-Person Key-Point Detection And Multi-Threading C++ Library

- Main Page
- Namespaces
- Classes
- Files

- Namespace List
- Namespace Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
op Namespace Reference

## Namespaces
| ConfigureError
| ConfigureLog

## Classes
class | CameraParameterReader
class | PoseTriangulation
class | WPoseTriangulation
class | Array
class | CvMatToOpInput
class | CvMatToOpOutput
struct | Datum
class | GpuRenderer
class | KeepTopNPeople
class | KeypointScaler
class | OpOutputToCvMat
struct | Point
struct | Rectangle
class | Renderer
class | ScaleAndSizeExtractor
class | VerbosePrinter
class | WCvMatToOpInput
class | WCvMatToOpOutput
class | WKeepTopNPeople
class | WKeypointScaler
class | WOpOutputToCvMat
class | WScaleAndSizeExtractor
class | WVerbosePrinter
class | FaceCpuRenderer
class | FaceDetector
class | FaceDetectorOpenCV
class | FaceExtractorCaffe
class | FaceExtractorNet
class | FaceGpuRenderer
class | FaceRenderer
class | WFaceDetector
class | WFaceDetectorOpenCV
class | WFaceExtractorNet
class | WFaceRenderer
class | CocoJsonSaver
class | FileSaver
class | HeatMapSaver
class | ImageSaver
class | JsonOfstream
class | KeypointSaver
class | PeopleJsonSaver
class | UdpSender
class | VideoSaver
class | WCocoJsonSaver
class | WFaceSaver
class | WHandSaver
class | WHeatMapSaver
class | WImageSaver
class | WPeopleJsonSaver
class | WPoseSaver
class | WUdpSender
class | WVideoSaver
class | WVideoSaver3D
class | FrameDisplayer
class | Gui
class | Gui3D
class | GuiInfoAdder
class | WGui
class | WGui3D
class | WGuiInfoAdder
class | HandCpuRenderer
class | HandDetector
class | HandDetectorFromTxt
class | HandExtractorCaffe
class | HandExtractorNet
class | HandGpuRenderer
class | HandRenderer
class | WHandDetector
class | WHandDetectorFromTxt
class | WHandDetectorTracking
class | WHandDetectorUpdate
class | WHandExtractorNet
class | WHandRenderer
class | BodyPartConnectorCaffe
class | MaximumCaffe
class | Net
class | NetCaffe
class | NetOpenCv
class | NmsCaffe
class | ResizeAndMergeCaffe
class | PoseCpuRenderer
class | PoseExtractor
class | PoseExtractorCaffe
class | PoseExtractorNet
class | PoseGpuRenderer
class | PoseRenderer
class | WPoseExtractor
class | WPoseExtractorNet
class | WPoseRenderer
class | DatumProducer
class | FlirReader
class | ImageDirectoryReader
class | IpCameraReader
class | Producer
class | SpinnakerWrapper
class | VideoCaptureReader
class | VideoReader
class | WDatumProducer
class | WebcamReader
class | PriorityQueue
class | Queue
class | QueueBase
class | SubThread
class | SubThreadNoQueue
class | SubThreadQueueIn
class | SubThreadQueueInOut
class | SubThreadQueueOut
class | Thread
class | ThreadManager
class | WFpsMax
class | WIdGenerator
class | Worker
class | WorkerConsumer
class | WorkerProducer
class | WQueueAssembler
class | WQueueOrderer
struct | PersonEntry
class | PersonIdExtractor
struct | PersonTrackerEntry
class | PersonTracker
class | WPersonIdExtractor
class | PointerContainerGreater
class | PointerContainerLess
class | Profiler
class | WrapperT
struct | WrapperStructExtra
struct | WrapperStructFace
struct | WrapperStructGui
struct | WrapperStructHand
struct | WrapperStructInput
struct | WrapperStructOutput
struct | WrapperStructPose

## Typedefs
typedef WrapperT < DATUM_BASE_NO_PTR > | Wrapper

## Enumerations
enum | Points2DOrigin { Points2DOrigin::TopLeft, Points2DOrigin::TopRight, Points2DOrigin::BottomLeft, Points2DOrigin::BottomRight }
enum | ScaleMode : unsigned char { ScaleMode::InputResolution, ScaleMode::NetOutputResolution, ScaleMode::OutputResolution, ScaleMode::ZeroToOne, ScaleMode::PlusMinusOne, ScaleMode::UnsignedChar, ScaleMode::NoScale }
enum | HeatMapType : unsigned char { HeatMapType::Parts, HeatMapType::Background, HeatMapType::PAFs }
enum | RenderMode : unsigned char { RenderMode::None, RenderMode::Cpu, RenderMode::Gpu }
enum | ElementToRender : unsigned char { ElementToRender::Skeleton, ElementToRender::Background, ElementToRender::AddKeypoints, ElementToRender::AddPAFs }
enum | DataFormat : unsigned char { DataFormat::Json, DataFormat::Xml, DataFormat::Yaml, DataFormat::Yml }
enum | CocoJsonFormat : unsigned char { CocoJsonFormat::Body, CocoJsonFormat::Foot, CocoJsonFormat::Car, CocoJsonFormat::Size }
enum | GpuMode : unsigned char { GpuMode::Cuda = 0, GpuMode::OpenCL = 1, GpuMode::NoGpu = 2, GpuMode::Size }
enum | DisplayMode : unsigned short { DisplayMode::NoDisplay, DisplayMode::DisplayAll, DisplayMode::Display2D, DisplayMode::Display3D, DisplayMode::DisplayAdam }
enum | FullScreenMode : bool { FullScreenMode::FullScreen, FullScreenMode::Windowed }
enum | PoseModel : unsigned char { PoseModel::BODY_25 = 0, PoseModel::COCO_18, PoseModel::MPI_15, PoseModel::MPI_15_4, PoseModel::BODY_19, PoseModel::BODY_19_X2, PoseModel::BODY_19N, PoseModel::BODY_25E, PoseModel::BODY_65, PoseModel::CAR_12, PoseModel::BODY_25D, PoseModel::BODY_23, PoseModel::CAR_22, PoseModel::BODY_19E, PoseModel::BODY_25B, PoseModel::BODY_95, PoseModel::Size }
enum | PoseProperty : unsigned char { PoseProperty::NMSThreshold = 0, PoseProperty::ConnectInterMinAboveThreshold, PoseProperty::ConnectInterThreshold, PoseProperty::ConnectMinSubsetCnt, PoseProperty::ConnectMinSubsetScore, PoseProperty::Size }
enum | ProducerFpsMode : bool { ProducerFpsMode::OriginalFps, ProducerFpsMode::RetrievalFps }
enum | ProducerProperty : unsigned char { ProducerProperty::AutoRepeat = 0, ProducerProperty::Flip, ProducerProperty::Rotation, ProducerProperty::FrameStep, ProducerProperty::NumberViews, ProducerProperty::Size }
enum | ProducerType : unsigned char { ProducerType::FlirCamera, ProducerType::ImageDirectory, ProducerType::IPCamera, ProducerType::Video, ProducerType::Webcam, ProducerType::None }
enum | ThreadManagerMode : unsigned char { ThreadManagerMode::Asynchronous, ThreadManagerMode::AsynchronousIn, ThreadManagerMode::AsynchronousOut, ThreadManagerMode::Synchronous }
enum | ErrorMode : unsigned char { ErrorMode::StdRuntimeError, ErrorMode::FileLogging, ErrorMode::StdCerr, ErrorMode::All }
enum | LogMode : unsigned char { LogMode::FileLogging, LogMode::StdCout, LogMode::All }
enum | Priority : unsigned char { Priority::None = 0, Priority::Low = 1, Priority::Normal = 2, Priority::High = 3, Priority::Max = 4, Priority::NoOutput = 255 }
enum | WorkerType : unsigned char { WorkerType::Input = 0, WorkerType::PostProcessing, WorkerType::Output, WorkerType::Size }

## Functions
OP_API double | triangulate (cv::Mat &reconstructedPoint, const std::vector< cv::Mat > &cameraMatrices, const std::vector< cv::Point2d > &pointsOnEachCamera)
OP_API double | triangulateWithOptimization (cv::Mat &reconstructedPoint, const std::vector< cv::Mat > &cameraMatrices, const std::vector< cv::Point2d > &pointsOnEachCamera, const double reprojectionMaxAcceptable)
| COMPILE_TEMPLATE_DATUM (WPoseTriangulation)
OP_API void | estimateAndSaveIntrinsics (const Point< int > &gridInnerCorners, const float gridSquareSizeMm, const int flags, const std::string &outputParameterFolder, const std::string &imageFolder, const std::string &serialNumber, const bool saveImagesWithCorners=false)
OP_API void | estimateAndSaveExtrinsics (const std::string &parameterFolder, const std::string &imageFolder, const Point< int > &gridInnerCorners, const float gridSquareSizeMm, const int index0, const int index1, const bool imagesAreUndistorted, const bool combineCam0Extrinsics)
OP_API void | refineAndSaveExtrinsics (const std::string &parameterFolder, const std::string &imageFolder, const Point< int > &gridInnerCorners, const float gridSquareSizeMm, const int numberCameras, const bool imagesAreUndistorted, const bool saveImagesWithCorners=false)
OP_API void | estimateAndSaveSiftFile (const Point< int > &gridInnerCorners, const std::string &imageFolder, const int numberCameras, const bool saveImagesWithCorners=false)
OP_API std::pair< bool, std::vector< cv::Point2f > > | findAccurateGridCorners (const cv::Mat &image, const cv::Size &gridInnerCorners)
OP_API std::vector< cv::Point3f > | getObjects3DVector (const cv::Size &gridInnerCorners, const float gridSquareSizeMm)
OP_API void | drawGridCorners (cv::Mat &image, const cv::Size &gridInnerCorners, const std::vector< cv::Point2f > &points2DVector)
OP_API std::array< unsigned int, 4 > | getOutterCornerIndices (const std::vector< cv::Point2f > &points2DVector, const cv::Size &gridInnerCorners)
OP_API void | reorderPoints (std::vector< cv::Point2f > &points2DVector, const cv::Size &gridInnerCorners, const cv::Mat &image, const bool showWarning=true)
OP_API void | plotGridCorners (const cv::Size &gridInnerCorners, const std::vector< cv::Point2f > &points2DVector, const std::string &imagePath, const cv::Mat &image)
template<typename T >
Rectangle< T > | recenter (const Rectangle< T > &rectangle, const T newWidth, const T newHeight)
| COMPILE_TEMPLATE_DATUM (WCvMatToOpInput)
| COMPILE_TEMPLATE_DATUM (WCvMatToOpOutput)
| COMPILE_TEMPLATE_DATUM (WKeepTopNPeople)
| COMPILE_TEMPLATE_DATUM (WKeypointScaler)
| COMPILE_TEMPLATE_DATUM (WOpOutputToCvMat)
| COMPILE_TEMPLATE_DATUM (WScaleAndSizeExtractor)
| COMPILE_TEMPLATE_DATUM (WVerbosePrinter)
OP_API void | renderFaceKeypointsCpu (Array< float > &frameArray, const Array< float > &faceKeypoints, const float renderThreshold)
void | renderFaceKeypointsGpu (float *framePtr, const Point< int > &frameSize, const float *const facePtr, const int numberPeople, const float renderThreshold, const float alphaColorToAdd=FACE_DEFAULT_ALPHA_KEYPOINT)
| COMPILE_TEMPLATE_DATUM (WFaceDetector)
| COMPILE_TEMPLATE_DATUM (WFaceDetectorOpenCV)
| COMPILE_TEMPLATE_DATUM (WFaceExtractorNet)
| COMPILE_TEMPLATE_DATUM (WFaceRenderer)
OP_API std::string | dataFormatToString (const DataFormat dataFormat)
OP_API DataFormat | stringToDataFormat (const std::string &dataFormat)
OP_API void | saveFloatArray (const Array< float > &array, const std::string &fullFilePath)
OP_API void | saveData (const std::vector< cv::Mat > &cvMats, const std::vector< std::string > &cvMatNames, const std::string &fileNameNoExtension, const DataFormat dataFormat)
OP_API void | saveData (const cv::Mat &cvMat, const std::string cvMatName, const std::string &fileNameNoExtension, const DataFormat dataFormat)
OP_API std::vector< cv::Mat > | loadData (const std::vector< std::string > &cvMatNames, const std::string &fileNameNoExtension, const DataFormat dataFormat)
OP_API cv::Mat | loadData (const std::string &cvMatName, const std::string &fileNameNoExtension, const DataFormat dataFormat)
OP_API void | savePeopleJson (const Array< float > &keypoints, const std::vector< std::vector< std::array< float, 3 >>> &candidates, const std::string &keypointName, const std::string &fileName, const bool humanReadable)
OP_API void | savePeopleJson (const std::vector< std::pair< Array< float >, std::string >> &keypointVector, const std::vector< std::vector< std::array< float, 3 >>> &candidates, const std::string &fileName, const bool humanReadable)
OP_API void | saveImage (const cv::Mat &cvMat, const std::string &fullFilePath, const std::vector< int > &openCvCompressionParams={CV_IMWRITE_JPEG_QUALITY, 100, CV_IMWRITE_PNG_COMPRESSION, 9})
OP_API cv::Mat | loadImage (const std::string &fullFilePath, const int openCvFlags=CV_LOAD_IMAGE_ANYDEPTH)
OP_API std::vector< std::array < Rectangle< float >, 2 > > | loadHandDetectorTxt (const std::string &txtFilePath)
| COMPILE_TEMPLATE_DATUM (WCocoJsonSaver)
| COMPILE_TEMPLATE_DATUM (WFaceSaver)
| COMPILE_TEMPLATE_DATUM (WHandSaver)
| COMPILE_TEMPLATE_DATUM (WHeatMapSaver)
| COMPILE_TEMPLATE_DATUM (WImageSaver)
| COMPILE_TEMPLATE_DATUM (WPeopleJsonSaver)
| COMPILE_TEMPLATE_DATUM (WPoseSaver)
| COMPILE_TEMPLATE_DATUM (WUdpSender)
| COMPILE_TEMPLATE_DATUM (WVideoSaver)
| COMPILE_TEMPLATE_DATUM (WVideoSaver3D)
OP_API void | cudaCheck (const int line=-1, const std::string &function="", const std::string &file="")
OP_API int | getCudaGpuNumber ()
unsigned int | getNumberCudaBlocks (const unsigned int totalRequired, const unsigned int numberCudaThreads=CUDA_NUM_THREADS)
OP_API void | getNumberCudaThreadsAndBlocks (dim3 &numberCudaThreads, dim3 &numberCudaBlocks, const Point< int > &frameSize)
OP_API int | getGpuNumber ()
OP_API GpuMode | getGpuMode ()
| COMPILE_TEMPLATE_DATUM (WGui)
| COMPILE_TEMPLATE_DATUM (WGui3D)
| COMPILE_TEMPLATE_DATUM (WGuiInfoAdder)
OP_API void | renderHandKeypointsCpu (Array< float > &frameArray, const std::array< Array< float >, 2 > &handKeypoints, const float renderThreshold)
void | renderHandKeypointsGpu (float *framePtr, const Point< int > &frameSize, const float *const handsPtr, const int numberHands, const float renderThreshold, const float alphaColorToAdd=HAND_DEFAULT_ALPHA_KEYPOINT)
| COMPILE_TEMPLATE_DATUM (WHandDetector)
| COMPILE_TEMPLATE_DATUM (WHandDetectorFromTxt)
| COMPILE_TEMPLATE_DATUM (WHandDetectorTracking)
| COMPILE_TEMPLATE_DATUM (WHandDetectorUpdate)
| COMPILE_TEMPLATE_DATUM (WHandExtractorNet)
| COMPILE_TEMPLATE_DATUM (WHandRenderer)
template<typename T >
void | connectBodyPartsCpu (Array< T > &poseKeypoints, Array< T > &poseScores, const T *const heatMapPtr, const T *const peaksPtr, const PoseModel poseModel, const Point< int > &heatMapSize, const int maxPeaks, const T interMinAboveThreshold, const T interThreshold, const int minSubsetCnt, const T minSubsetScore, const T scaleFactor=1.f, const bool maximizePositives=false)
template<typename T >
void | connectBodyPartsGpu (Array< T > &poseKeypoints, Array< T > &poseScores, const T *const heatMapGpuPtr, const T *const peaksPtr, const PoseModel poseModel, const Point< int > &heatMapSize, const int maxPeaks, const T interMinAboveThreshold, const T interThreshold, const int minSubsetCnt, const T minSubsetScore, const T scaleFactor=1.f, const bool maximizePositives=false, Array< T > pairScoresCpu=Array< T >{}, T *pairScoresGpuPtr=nullptr, const unsigned int *const bodyPartPairsGpuPtr=nullptr, const unsigned int *const mapIdxGpuPtr=nullptr, const T *const peaksGpuPtr=nullptr)
template<typename T >
void | connectBodyPartsOcl (Array< T > &poseKeypoints, Array< T > &poseScores, const T *const heatMapGpuPtr, const T *const peaksPtr, const PoseModel poseModel, const Point< int > &heatMapSize, const int maxPeaks, const T interMinAboveThreshold, const T interThreshold, const int minSubsetCnt, const T minSubsetScore, const T scaleFactor=1.f, const bool maximizePositives=false, Array< T > pairScoresCpu=Array< T >{}, T *pairScoresGpuPtr=nullptr, const unsigned int *const bodyPartPairsGpuPtr=nullptr, const unsigned int *const mapIdxGpuPtr=nullptr, const T *const peaksGpuPtr=nullptr, const int gpuID=0)
template<typename T >
std::vector< std::pair < std::vector< int >, T > > | createPeopleVector (const T *const heatMapPtr, const T *const peaksPtr, const PoseModel poseModel, const Point< int > &heatMapSize, const int maxPeaks, const T interThreshold, const T interMinAboveThreshold, const std::vector< unsigned int > &bodyPartPairs, const unsigned int numberBodyParts, const unsigned int numberBodyPartPairs, const Array< T > &precomputedPAFs=Array< T >())
template<typename T >
void | removePeopleBelowThresholds (std::vector< int > &validSubsetIndexes, int &numberPeople, const std::vector< std::pair< std::vector< int >, T >> &subsets, const unsigned int numberBodyParts, const int minSubsetCnt, const T minSubsetScore, const int maxPeaks, const bool maximizePositives)
template<typename T >
void | peopleVectorToPeopleArray (Array< T > &poseKeypoints, Array< T > &poseScores, const T scaleFactor, const std::vector< std::pair< std::vector< int >, T >> &subsets, const std::vector< int > &validSubsetIndexes, const T *const peaksPtr, const int numberPeople, const unsigned int numberBodyParts, const unsigned int numberBodyPartPairs)
template<typename T >
std::vector< std::tuple< T, T, int, int, int > > | pafPtrIntoVector (const Array< T > &pairScores, const T *const peaksPtr, const int maxPeaks, const std::vector< unsigned int > &bodyPartPairs, const unsigned int numberBodyPartPairs)
template<typename T >
std::vector< std::pair < std::vector< int >, T > > | pafVectorIntoPeopleVector (const std::vector< std::tuple< T, T, int, int, int >> &pairScores, const T *const peaksPtr, const int maxPeaks, const std::vector< unsigned int > &bodyPartPairs, const unsigned int numberBodyParts)
template<typename T >
void | maximumCpu (T *targetPtr, const T *const sourcePtr, const std::array< int, 4 > &targetSize, const std::array< int, 4 > &sourceSize)
template<typename T >
void | maximumGpu (T *targetPtr, const T *const sourcePtr, const std::array< int, 4 > &targetSize, const std::array< int, 4 > &sourceSize)
template<typename T >
void | nmsCpu (T *targetPtr, int *kernelPtr, const T *const sourcePtr, const T threshold, const std::array< int, 4 > &targetSize, const std::array< int, 4 > &sourceSize, const Point< T > &offset)
template<typename T >
void | nmsGpu (T *targetPtr, int *kernelPtr, const T *const sourcePtr, const T threshold, const std::array< int, 4 > &targetSize, const std::array< int, 4 > &sourceSize, const Point< T > &offset)
template<typename T >
void | nmsOcl (T *targetPtr, uint8_t *kernelGpuPtr, uint8_t *kernelCpuPtr, const T *const sourcePtr, const T threshold, const std::array< int, 4 > &targetSize, const std::array< int, 4 > &sourceSize, const Point< T > &offset, const int gpuID=0)
template<typename T >
void | resizeAndMergeCpu (T *targetPtr, const std::vector< const T * > &sourcePtrs, const std::array< int, 4 > &targetSize, const std::vector< std::array< int, 4 >> &sourceSizes, const std::vector< T > &scaleInputToNetInputs={1.f})
template<typename T >
void | resizeAndMergeGpu (T *targetPtr, const std::vector< const T * > &sourcePtrs, const std::array< int, 4 > &targetSize, const std::vector< std::array< int, 4 >> &sourceSizes, const std::vector< T > &scaleInputToNetInputs={1.f})
template<typename T >
void | resizeAndMergeOcl (T *targetPtr, const std::vector< const T * > &sourcePtrs, std::vector< T * > &sourceTempPtrs, const std::array< int, 4 > &targetSize, const std::vector< std::array< int, 4 >> &sourceSizes, const std::vector< T > &scaleInputToNetInputs={1.f}, const int gpuID=0)
OP_API const std::map < unsigned int, std::string > & | getPoseBodyPartMapping (const PoseModel poseModel)
OP_API const std::string & | getPoseProtoTxt (const PoseModel poseModel)
OP_API const std::string & | getPoseTrainedModel (const PoseModel poseModel)
OP_API unsigned int | getPoseNumberBodyParts (const PoseModel poseModel)
OP_API const std::vector < unsigned int > & | getPosePartPairs (const PoseModel poseModel)
OP_API const std::vector < unsigned int > & | getPoseMapIndex (const PoseModel poseModel)
OP_API unsigned int | getPoseMaxPeaks ()
OP_API float | getPoseNetDecreaseFactor (const PoseModel poseModel)
OP_API unsigned int | poseBodyPartMapStringToKey (const PoseModel poseModel, const std::string &string)
OP_API unsigned int | poseBodyPartMapStringToKey (const PoseModel poseModel, const std::vector< std::string > &strings)
OP_API float | getPoseDefaultNmsThreshold (const PoseModel poseModel, const bool maximizePositives=false)
OP_API float | getPoseDefaultConnectInterMinAboveThreshold (const bool maximizePositives=false)
OP_API float | getPoseDefaultConnectInterThreshold (const PoseModel poseModel, const bool maximizePositives=false)
OP_API unsigned int | getPoseDefaultMinSubsetCnt (const bool maximizePositives=false)
OP_API float | getPoseDefaultConnectMinSubsetScore (const bool maximizePositives=false)
OP_API bool | addBkgChannel (const PoseModel poseModel)
OP_API const std::vector< float > & | getPoseScales (const PoseModel poseModel)
OP_API const std::vector< float > & | getPoseColors (const PoseModel poseModel)
OP_API const std::vector < unsigned int > & | getPoseBodyPartPairsRender (const PoseModel poseModel)
OP_API unsigned int | getNumberElementsToRender (const PoseModel poseModel)
OP_API void | renderPoseKeypointsCpu (Array< float > &frameArray, const Array< float > &poseKeypoints, const PoseModel poseModel, const float renderThreshold, const bool blendOriginalFrame=true)
void | renderPoseKeypointsGpu (float *framePtr, const PoseModel poseModel, const int numberPeople, const Point< int > &frameSize, const float *const posePtr, const float renderThreshold, const bool googlyEyes=false, const bool blendOriginalFrame=true, const float alphaBlending=POSE_DEFAULT_ALPHA_KEYPOINT)
void | renderPoseHeatMapGpu (float *frame, const Point< int > &frameSize, const float *const heatMapPtr, const Point< int > &heatMapSize, const float scaleToKeepRatio, const unsigned int part, const float alphaBlending=POSE_DEFAULT_ALPHA_HEAT_MAP)
void | renderPoseHeatMapsGpu (float *frame, const PoseModel poseModel, const Point< int > &frameSize, const float *const heatMapPtr, const Point< int > &heatMapSize, const float scaleToKeepRatio, const float alphaBlending=POSE_DEFAULT_ALPHA_HEAT_MAP)
void | renderPosePAFGpu (float *framePtr, const PoseModel poseModel, const Point< int > &frameSize, const float *const heatMapPtr, const Point< int > &heatMapSize, const float scaleToKeepRatio, const int part, const float alphaBlending=POSE_DEFAULT_ALPHA_HEAT_MAP)
void | renderPosePAFsGpu (float *framePtr, const PoseModel poseModel, const Point< int > &frameSize, const float *const heatMapPtr, const Point< int > &heatMapSize, const float scaleToKeepRatio, const float alphaBlending=POSE_DEFAULT_ALPHA_HEAT_MAP)
void | renderPoseDistanceGpu (float *framePtr, const Point< int > &frameSize, const float *const heatMapPtr, const Point< int > &heatMapSize, const float scaleToKeepRatio, const unsigned int part, const float alphaBlending=POSE_DEFAULT_ALPHA_HEAT_MAP)
| COMPILE_TEMPLATE_DATUM (WPoseExtractor)
| COMPILE_TEMPLATE_DATUM (WPoseExtractorNet)
| COMPILE_TEMPLATE_DATUM (WPoseRenderer)
OP_API std::shared_ptr< Producer > | createProducer (const ProducerType producerType=ProducerType::None, const std::string &producerString="", const Point< int > &cameraResolution=Point< int >{-1,-1}, const std::string &cameraParameterPath="models/cameraParameters/", const bool undistortImage=true, const int numberViews=-1)
| COMPILE_TEMPLATE_DATUM (PriorityQueue)
| COMPILE_TEMPLATE_DATUM (Queue)
| COMPILE_TEMPLATE_DATUM (SubThread)
| COMPILE_TEMPLATE_DATUM (Thread)
| COMPILE_TEMPLATE_DATUM (ThreadManager)
| COMPILE_TEMPLATE_DATUM (WFpsMax)
| COMPILE_TEMPLATE_DATUM (WIdGenerator)
| COMPILE_TEMPLATE_DATUM (Worker)
| COMPILE_TEMPLATE_DATUM (WorkerConsumer)
| COMPILE_TEMPLATE_DATUM (WorkerProducer)
| COMPILE_TEMPLATE_DATUM (WQueueOrderer)
OP_API void | pyramidalLKCpu (std::vector< cv::Point2f > &coordI, std::vector< cv::Point2f > &coordJ, std::vector< cv::Mat > &pyramidImagesPrevious, std::vector< cv::Mat > &pyramidImagesCurrent, std::vector< char > &status, const cv::Mat &imagePrevious, const cv::Mat &imageCurrent, const int levels=3, const int patchSize=21)
int | pyramidalLKGpu (std::vector< cv::Point2f > &ptsI, std::vector< cv::Point2f > &ptsJ, std::vector< char > &status, const cv::Mat &imagePrevious, const cv::Mat &imageCurrent, const int levels=3, const int patchSize=21)
OP_API void | pyramidalLKOcv (std::vector< cv::Point2f > &coordI, std::vector< cv::Point2f > &coordJ, std::vector< cv::Mat > &pyramidImagesPrevious, std::vector< cv::Mat > &pyramidImagesCurrent, std::vector< char > &status, const cv::Mat &imagePrevious, const cv::Mat &imageCurrent, const int levels=3, const int patchSize=21, const bool initFlow=false)
| COMPILE_TEMPLATE_DATUM (WPersonIdExtractor)
template<typename T >
void | check (const bool condition, const T &message="", const int line=-1, const std::string &function="", const std::string &file="")
template<typename T , typename T1 , typename T2 >
void | checkE (const T1 &conditionA, const T2 &conditionB, const T &message="", const int line=-1, const std::string &function="", const std::string &file="")
template<typename T , typename T1 , typename T2 >
void | checkNE (const T1 &conditionA, const T2 &conditionB, const T &message="", const int line=-1, const std::string &function="", const std::string &file="")
template<typename T , typename T1 , typename T2 >
void | checkLE (const T1 &conditionA, const T2 &conditionB, const T &message="", const int line=-1, const std::string &function="", const std::string &file="")
template<typename T , typename T1 , typename T2 >
void | checkLT (const T1 &conditionA, const T2 &conditionB, const T &message="", const int line=-1, const std::string &function="", const std::string &file="")
template<typename T , typename T1 , typename T2 >
void | checkGE (const T1 &conditionA, const T2 &conditionB, const T &message="", const int line=-1, const std::string &function="", const std::string &file="")
template<typename T , typename T1 , typename T2 >
void | checkGT (const T1 &conditionA, const T2 &conditionB, const T &message="", const int line=-1, const std::string &function="", const std::string &file="")
template<typename T >
std::string | tToString (const T &message)
OP_API void | error (const std::string &message, const int line=-1, const std::string &function="", const std::string &file="")
template<typename T >
void | error (const T &message, const int line=-1, const std::string &function="", const std::string &file="")
OP_API void | log (const std::string &message, const Priority priority=Priority::Max, const int line=-1, const std::string &function="", const std::string &file="")
template<typename T >
void | log (const T &message, const Priority priority=Priority::Max, const int line=-1, const std::string &function="", const std::string &file="")
template<typename T >
void | dLog (const T &message, const Priority priority=Priority::Max, const int line=-1, const std::string &function="", const std::string &file="")
template<typename T >
char | charRound (const T a)
template<typename T >
signed char | sCharRound (const T a)
template<typename T >
int | intRound (const T a)
template<typename T >
long | longRound (const T a)
template<typename T >
long long | longLongRound (const T a)
template<typename T >
unsigned char | uCharRound (const T a)
template<typename T >
unsigned int | uIntRound (const T a)
template<typename T >
unsigned long | ulongRound (const T a)
template<typename T >
unsigned long long | uLongLongRound (const T a)
template<typename T >
T | fastMax (const T a, const T b)
template<typename T >
T | fastMin (const T a, const T b)
template<class T >
T | fastTruncate (T value, T min=0, T max=1)
OP_API void | makeDirectory (const std::string &directoryPath)
OP_API bool | existDirectory (const std::string &directoryPath)
OP_API bool | existFile (const std::string &filePath)
OP_API std::string | formatAsDirectory (const std::string &directoryPathString)
OP_API std::string | getFileNameAndExtension (const std::string &fullPath)
OP_API std::string | getFileNameNoExtension (const std::string &fullPath)
OP_API std::string | getFileExtension (const std::string &fullPath)
OP_API std::string | getFullFilePathNoExtension (const std::string &fullPath)
OP_API std::string | getFileParentFolderPath (const std::string &fullPath)
OP_API std::vector< std::string > | getFilesOnDirectory (const std::string &directoryPath, const std::vector< std::string > &extensions={})
OP_API std::vector< std::string > | getFilesOnDirectory (const std::string &directoryPath, const std::string &extension)
OP_API std::string | removeSpecialsCharacters (const std::string &stringToVariate)
OP_API void | removeAllOcurrencesOfSubString (std::string &stringToModify, const std::string &substring)
OP_API void | replaceAll (std::string &stringText, const char charToChange, const char charToAdd)
OP_API PoseModel | flagsToPoseModel (const std::string &poseModeString)
OP_API ScaleMode | flagsToScaleMode (const int keypointScale)
OP_API ScaleMode | flagsToHeatMapScaleMode (const int heatMapScale)
OP_API ProducerType | flagsToProducerType (const std::string &imageDirectory, const std::string &videoPath, const std::string &ipCameraPath, const int webcamIndex, const bool flirCamera)
OP_API std::pair< ProducerType, std::string > | flagsToProducer (const std::string &imageDirectory, const std::string &videoPath, const std::string &ipCameraPath="", const int webcamIndex=-1, const bool flirCamera=false, const int flirCameraIndex=-1)
OP_API std::vector< HeatMapType > | flagsToHeatMaps (const bool heatMapsAddParts=false, const bool heatMapsAddBkg=false, const bool heatMapsAddPAFs=false)
OP_API RenderMode | flagsToRenderMode (const int renderFlag, const bool gpuBuggy=false, const int renderPoseFlag=-2)
OP_API DisplayMode | flagsToDisplayMode (const int display, const bool enabled3d)
OP_API Point< int > | flagsToPoint (const std::string &pointString, const std::string &pointExample="1280x720")
template<typename T >
T | getDistance (const Array< T > &keypoints, const int person, const int elementA, const int elementB)
template<typename T >
void | averageKeypoints (Array< T > &keypointsA, const Array< T > &keypointsB, const int personA)
template<typename T >
void | scaleKeypoints (Array< T > &keypoints, const T scale)
template<typename T >
void | scaleKeypoints2d (Array< T > &keypoints, const T scaleX, const T scaleY)
template<typename T >
void | scaleKeypoints2d (Array< T > &keypoints, const T scaleX, const T scaleY, const T offsetX, const T offsetY)
template<typename T >
void | renderKeypointsCpu (Array< T > &frameArray, const Array< T > &keypoints, const std::vector< unsigned int > &pairs, const std::vector< T > colors, const T thicknessCircleRatio, const T thicknessLineRatioWRTCircle, const std::vector< T > &poseScales, const T threshold)
template<typename T >
Rectangle< T > | getKeypointsRectangle (const Array< T > &keypoints, const int person, const T threshold)
template<typename T >
T | getAverageScore (const Array< T > &keypoints, const int person)
template<typename T >
T | getKeypointsArea (const Array< T > &keypoints, const int person, const T threshold)
template<typename T >
int | getBiggestPerson (const Array< T > &keypoints, const T threshold)
template<typename T >
int | getNonZeroKeypoints (const Array< T > &keypoints, const int person, const T threshold)
template<typename T >
T | getDistanceAverage (const Array< T > &keypoints, const int personA, const int personB, const T threshold)
template<typename T >
T | getDistanceAverage (const Array< T > &keypointsA, const int personA, const Array< T > &keypointsB, const int personB, const T threshold)
template<typename T >
Array< T > | getKeypointsPerson (const Array< T > &keypoints, const int person, const bool noCopy=false)
template<typename T >
float | getKeypointsRoi (const Array< T > &keypoints, const int personA, const int personB, const T threshold)
template<typename T >
float | getKeypointsRoi (const Array< T > &keypointsA, const int personA, const Array< T > &keypointsB, const int personB, const T threshold)
OP_API void | putTextOnCvMat (cv::Mat &cvMat, const std::string &textToDisplay, const Point< int > &position, const cv::Scalar &color, const bool normalizeWidth, const int imageWidth)
OP_API void | unrollArrayToUCharCvMat (cv::Mat &cvMatResult, const Array< float > &array)
OP_API void | uCharCvMatToFloatPtr (float *floatPtrImage, const cv::Mat &cvImage, const int normalize)
OP_API double | resizeGetScaleFactor (const Point< int > &initialSize, const Point< int > &targetSize)
OP_API void | resizeFixedAspectRatio (cv::Mat &resizedCvMat, const cv::Mat &cvMat, const double scaleFactor, const Point< int > &targetSize, const int borderMode=cv::BORDER_CONSTANT, const cv::Scalar &borderValue=cv::Scalar{0, 0, 0})
OP_API void | keepRoiInside (cv::Rect &roi, const int imageWidth, const int imageHeight)
template<typename TPointerContainer >
bool | checkNoNullNorEmpty (const TPointerContainer &tPointerContainer)
template<typename T >
bool | vectorsAreEqual (const std::vector< T > &vectorA, const std::vector< T > &vectorB)
template<typename T >
std::vector< T > | mergeVectors (const std::vector< T > &vectorA, const std::vector< T > &vectorB)
OP_API unsigned long long | getLastNumber (const std::string &string)
template<typename T >
std::string | toFixedLengthString (const T number, const unsigned long long stringLength=0)
OP_API std::vector< std::string > | splitString (const std::string &stringToSplit, const std::string &delimiter)
OP_API std::string | toLower (const std::string &string)
OP_API std::string | toUpper (const std::string &string)
OP_API void | wrapperConfigureSanityChecks (WrapperStructPose &wrapperStructPose, const WrapperStructFace &wrapperStructFace, const WrapperStructHand &wrapperStructHand, const WrapperStructExtra &wrapperStructExtra, const WrapperStructInput &wrapperStructInput, const WrapperStructOutput &wrapperStructOutput, const WrapperStructGui &wrapperStructGui, const bool renderOutput, const bool userOutputWsEmpty, const std::shared_ptr< Producer > &producerSharedPtr, const ThreadManagerMode threadManagerMode)
OP_API void | threadIdPP (unsigned long long &threadId, const bool multiThreadEnabled)
template<typename TDatums , typename TDatumsSP = std::shared_ptr<TDatums>, typename TWorker = std::shared_ptr<Worker<TDatumsSP>>>
void | configureThreadManager (ThreadManager< TDatumsSP > &threadManager, const bool multiThreadEnabled, const ThreadManagerMode threadManagerMode, const WrapperStructPose &wrapperStructPose, const WrapperStructFace &wrapperStructFace, const WrapperStructHand &wrapperStructHand, const WrapperStructExtra &wrapperStructExtra, const WrapperStructInput &wrapperStructInput, const WrapperStructOutput &wrapperStructOutput, const WrapperStructGui &wrapperStructGui, const std::array< std::vector< TWorker >, int(WorkerType::Size)> &userWs, const std::array< bool, int(WorkerType::Size)> &userWsOnNewThread)

## Variables
const auto | FACE_MAX_FACES = POSE_MAX_PEOPLE
const auto | FACE_NUMBER_PARTS = 70u
const std::vector< unsigned int > | FACE_PAIRS_RENDER {FACE_PAIRS_RENDER_GPU}
const std::vector< float > | FACE_COLORS_RENDER {FACE_COLORS_RENDER_GPU}
const std::vector< float > | FACE_SCALES_RENDER {FACE_SCALES_RENDER_GPU}
const auto | FACE_CCN_DECREASE_FACTOR = 8.f
const std::string | FACE_PROTOTXT {"face/pose_deploy.prototxt"}
const std::string | FACE_TRAINED_MODEL {"face/pose_iter_116000.caffemodel"}
const auto | FACE_DEFAULT_ALPHA_KEYPOINT = POSE_DEFAULT_ALPHA_KEYPOINT
const auto | FACE_DEFAULT_ALPHA_HEAT_MAP = POSE_DEFAULT_ALPHA_HEAT_MAP
const auto | CUDA_NUM_THREADS = 512u
const auto | HAND_MAX_HANDS = 2*POSE_MAX_PEOPLE
const auto | HAND_NUMBER_PARTS = 21u
const std::vector< unsigned int > | HAND_PAIRS_RENDER {HAND_PAIRS_RENDER_GPU}
const std::vector< float > | HAND_COLORS_RENDER {HAND_COLORS_RENDER_GPU}
const std::vector< float > | HAND_SCALES_RENDER {HAND_SCALES_RENDER_GPU}
const auto | HAND_CCN_DECREASE_FACTOR = 8.f
const std::string | HAND_PROTOTXT {"hand/pose_deploy.prototxt"}
const std::string | HAND_TRAINED_MODEL {"hand/pose_iter_102000.caffemodel"}
const auto | HAND_DEFAULT_ALPHA_KEYPOINT = POSE_DEFAULT_ALPHA_KEYPOINT
const auto | HAND_DEFAULT_ALPHA_HEAT_MAP = POSE_DEFAULT_ALPHA_HEAT_MAP
const auto | POSE_MAX_PEOPLE = 127u
const auto | POSE_DEFAULT_ALPHA_KEYPOINT = 0.6f
const auto | POSE_DEFAULT_ALPHA_HEAT_MAP = 0.7f
const auto | F95 = 25
| spTQueueIn
| spTQueueOut

## Typedef Documentation

typedef WrapperT<DATUM_BASE_NO_PTR> op::Wrapper

## Enumeration Type Documentation

enum op::CocoJsonFormat : unsigned char
| strong

Enumerator
Body |
Foot |
Car |
Size |

enum op::DataFormat : unsigned char
| strong

Enumerator
Json |
Xml |
Yaml |
Yml |

enum op::DisplayMode : unsigned short
| strong

GUI display modes. An enum class with the different output screen options. E.g., 2-D, 3-D, all, none.

Enumerator
NoDisplay | No display.
DisplayAll | All (2-D and 3-D/Adam) displays
Display2D | Only 2-D display.
Display3D | Only 3-D display.
DisplayAdam | Only Adam display.

enum op::ElementToRender : unsigned char
| strong

Enumerator
Skeleton |
Background |
AddKeypoints |
AddPAFs |

enum op::ErrorMode : unsigned char
| strong

Enumerator
StdRuntimeError |
FileLogging |
StdCerr |
All |

enum op::FullScreenMode : bool
| strong

Full screen modes. An enum class with the different full screen mode options, i.e., full screen or windored.

Enumerator
FullScreen | Full screen mode.
Windowed | Windowed mode, depending on the frame output size.

enum op::GpuMode : unsigned char
| strong

Enumerator
Cuda |
OpenCL |
NoGpu |
Size |

enum op::HeatMapType : unsigned char
| strong

Enumerator
Parts |
Background |
PAFs |

enum op::LogMode : unsigned char
| strong

Enumerator
FileLogging |
StdCout |
All |

enum op::Points2DOrigin
| strong

Enumerator
TopLeft |
TopRight |
BottomLeft |
BottomRight |

enum op::PoseModel : unsigned char
| strong

An enum class in which all the possible type of pose estimation models are included.

Enumerator
BODY_25 | COCO + 6 foot keypoints + neck + lower abs model, with 25+1 components (see poseParameters.hpp for details).
COCO_18 | COCO model + neck, with 18+1 components (see poseParameters.hpp for details).
MPI_15 | MPI model, with 15+1 components (see poseParameters.hpp for details).
MPI_15_4 | Variation of the MPI model, reduced number of CNN stages to 4: faster but less accurate.
BODY_19 | Experimental. Do not use.
BODY_19_X2 | Experimental. Do not use.
BODY_19N | Experimental. Do not use.
BODY_25E | Experimental. Do not use.
BODY_65 | Experimental. Do not use.
CAR_12 | Experimental. Do not use.
BODY_25D | Experimental. Do not use.
BODY_23 | Experimental. Do not use.
CAR_22 | Experimental. Do not use.
BODY_19E | Experimental. Do not use.
BODY_25B | Experimental. Do not use.
BODY_95 | Experimental. Do not use.
Size |

enum op::PoseProperty : unsigned char
| strong

Enumerator
NMSThreshold |
ConnectInterMinAboveThreshold |
ConnectInterThreshold |
ConnectMinSubsetCnt |
ConnectMinSubsetScore |
Size |

enum op::Priority : unsigned char
| strong

Enumerator
None |
Low |
Normal |
High |
Max |
NoOutput |

enum op::ProducerFpsMode : bool
| strong

Enumerator
OriginalFps | The frames will be extracted at the original source fps (frames might be skipped or repeated).
RetrievalFps | The frames will be extracted when the software retrieves them (frames will not be skipped or repeated).

enum op::ProducerProperty : unsigned char
| strong

Enumerator
AutoRepeat |
Flip |
Rotation |
FrameStep |
NumberViews |
Size |

enum op::ProducerType : unsigned char
| strong

Type of producers An enum class in which all the possible type of Producer are included. In order to add a new Producer, include its name in this enum and add a new 'else if' statement inside ProducerFactory::createProducer().

Enumerator
FlirCamera | Stereo FLIR (Point-Grey) camera reader. Based on Spinnaker SDK.
ImageDirectory | An image directory reader. It is able to read images on a folder with a interface similar to the OpenCV cv::VideoCapture.
IPCamera | An IP camera frames extractor, extending the functionality of cv::VideoCapture.
Video | A video frames extractor, extending the functionality of cv::VideoCapture.
Webcam | A webcam frames extractor, extending the functionality of cv::VideoCapture.
None | No type defined. Default state when no specific Producer has been picked yet.

enum op::RenderMode : unsigned char
| strong

Enumerator
None |
Cpu |
Gpu |

enum op::ScaleMode : unsigned char
| strong

Enumerator
InputResolution |
NetOutputResolution |
OutputResolution |
ZeroToOne |
PlusMinusOne |
UnsignedChar |
NoScale |

enum op::ThreadManagerMode : unsigned char
| strong

ThreadManager synchronization mode.

Enumerator
Asynchronous | First and last queues of ThreadManager will be given to the user, so he must push elements to the first queue and retrieve them from the last one after being processed. Recommended for prototyping environments (easier to test but more error-prone and potentially slower in performance).
AsynchronousIn | Similar to Asynchronous, but only the input (first) queue is given to the user.
AsynchronousOut | Similar to Asynchronous, but only the output (last) queue is given to the user.
Synchronous | Everything will run inside the ThreadManager. Recommended for production environments (more difficult to set up but faster in performance and less error-prone).

enum op::WorkerType : unsigned char
| strong

Enumerator
Input |
PostProcessing |
Output |
Size |

## Function Documentation

OP_API bool op::addBkgChannel | ( | const PoseModel | poseModel | ) |

template<typename T >

void op::averageKeypoints | ( | Array< T > & | keypointsA,
|  | const Array< T > & | keypointsB,
|  | const int | personA
| ) |  |

template<typename T >

char op::charRound | ( | const T | a | ) |
| inline

template<typename T >

void op::check | ( | const bool | condition,
|  | const T & | message = `""`,
|  | const int | line = `-1`,
|  | const std::string & | function = `""`,
|  | const std::string & | file = `""`
| ) |  |

template<typename T , typename T1 , typename T2 >

void op::checkE | ( | const T1 & | conditionA,
|  | const T2 & | conditionB,
|  | const T & | message = `""`,
|  | const int | line = `-1`,
|  | const std::string & | function = `""`,
|  | const std::string & | file = `""`
| ) |  |

template<typename T , typename T1 , typename T2 >

void op::checkGE | ( | const T1 & | conditionA,
|  | const T2 & | conditionB,
|  | const T & | message = `""`,
|  | const int | line = `-1`,
|  | const std::string & | function = `""`,
|  | const std::string & | file = `""`
| ) |  |

template<typename T , typename T1 , typename T2 >

void op::checkGT | ( | const T1 & | conditionA,
|  | const T2 & | conditionB,
|  | const T & | message = `""`,
|  | const int | line = `-1`,
|  | const std::string & | function = `""`,
|  | const std::string & | file = `""`
| ) |  |

template<typename T , typename T1 , typename T2 >

void op::checkLE | ( | const T1 & | conditionA,
|  | const T2 & | conditionB,
|  | const T & | message = `""`,
|  | const int | line = `-1`,
|  | const std::string & | function = `""`,
|  | const std::string & | file = `""`
| ) |  |

template<typename T , typename T1 , typename T2 >

void op::checkLT | ( | const T1 & | conditionA,
|  | const T2 & | conditionB,
|  | const T & | message = `""`,
|  | const int | line = `-1`,
|  | const std::string & | function = `""`,
|  | const std::string & | file = `""`
| ) |  |

template<typename T , typename T1 , typename T2 >

void op::checkNE | ( | const T1 & | conditionA,
|  | const T2 & | conditionB,
|  | const T & | message = `""`,
|  | const int | line = `-1`,
|  | const std::string & | function = `""`,
|  | const std::string & | file = `""`
| ) |  |

template<typename TPointerContainer >

bool op::checkNoNullNorEmpty | ( | const TPointerContainer & | tPointerContainer | ) |
| inline

op::COMPILE_TEMPLATE_DATUM | ( | WorkerConsumer |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WorkerProducer |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | Worker |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WFpsMax |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WPersonIdExtractor |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WHandDetectorUpdate |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WFaceDetector |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WFaceDetectorOpenCV |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WHandDetector |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WOpOutputToCvMat |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WHandDetectorFromTxt |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WHandDetectorTracking |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WVideoSaver3D |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WCvMatToOpInput |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WHandRenderer |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WFaceRenderer |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WCocoJsonSaver |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WVideoSaver |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | Queue |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | PriorityQueue |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WGuiInfoAdder |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WCvMatToOpOutput |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WVerbosePrinter |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WImageSaver |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WKeepTopNPeople |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WScaleAndSizeExtractor |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WFaceSaver |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WPoseSaver |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WFaceExtractorNet |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WKeypointScaler |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WHeatMapSaver |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WIdGenerator |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WHandExtractorNet |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WHandSaver |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WPoseRenderer |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WPoseExtractorNet |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WUdpSender |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WGui |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WPeopleJsonSaver |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WPoseExtractor |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WGui3D |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WPoseTriangulation |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | SubThread |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | WQueueOrderer |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | Thread |  | ) |

op::COMPILE_TEMPLATE_DATUM | ( | ThreadManager |  | ) |

template<typename TDatums , typename TDatumsSP = std::shared_ptr<TDatums>, typename TWorker = std::shared_ptr<Worker<TDatumsSP>>>

void op::configureThreadManager | ( | ThreadManager< TDatumsSP > & | threadManager,
|  | const bool | multiThreadEnabled,
|  | const ThreadManagerMode | threadManagerMode,
|  | const WrapperStructPose & | wrapperStructPose,
|  | const WrapperStructFace & | wrapperStructFace,
|  | const WrapperStructHand & | wrapperStructHand,
|  | const WrapperStructExtra & | wrapperStructExtra,
|  | const WrapperStructInput & | wrapperStructInput,
|  | const WrapperStructOutput & | wrapperStructOutput,
|  | const WrapperStructGui & | wrapperStructGui,
|  | const std::array< std::vector< TWorker >, int(WorkerType::Size)> & | userWs,
|  | const std::array< bool, int(WorkerType::Size)> & | userWsOnNewThread
| ) |  |

Set ThreadManager from TWorkers (private internal function). After any configure() has been called, the TWorkers are initialized. This function resets the ThreadManager and adds them. Common code for start() and exec().

template<typename T >

void op::connectBodyPartsCpu | ( | Array< T > & | poseKeypoints,
|  | Array< T > & | poseScores,
|  | const T *const | heatMapPtr,
|  | const T *const | peaksPtr,
|  | const PoseModel | poseModel,
|  | const Point< int > & | heatMapSize,
|  | const int | maxPeaks,
|  | const T | interMinAboveThreshold,
|  | const T | interThreshold,
|  | const int | minSubsetCnt,
|  | const T | minSubsetScore,
|  | const T | scaleFactor = `1.f`,
|  | const bool | maximizePositives = `false`
| ) |  |

template<typename T >

void op::connectBodyPartsGpu | ( | Array< T > & | poseKeypoints,
|  | Array< T > & | poseScores,
|  | const T *const | heatMapGpuPtr,
|  | const T *const | peaksPtr,
|  | const PoseModel | poseModel,
|  | const Point< int > & | heatMapSize,
|  | const int | maxPeaks,
|  | const T | interMinAboveThreshold,
|  | const T | interThreshold,
|  | const int | minSubsetCnt,
|  | const T | minSubsetScore,
|  | const T | scaleFactor = `1.f`,
|  | const bool | maximizePositives = `false`,
|  | Array< T > | pairScoresCpu = `Array< T >{}`,
|  | T * | pairScoresGpuPtr = `nullptr`,
|  | const unsigned int *const | bodyPartPairsGpuPtr = `nullptr`,
|  | const unsigned int *const | mapIdxGpuPtr = `nullptr`,
|  | const T *const | peaksGpuPtr = `nullptr`
| ) |  |

template<typename T >

void op::connectBodyPartsOcl | ( | Array< T > & | poseKeypoints,
|  | Array< T > & | poseScores,
|  | const T *const | heatMapGpuPtr,
|  | const T *const | peaksPtr,
|  | const PoseModel | poseModel,
|  | const Point< int > & | heatMapSize,
|  | const int | maxPeaks,
|  | const T | interMinAboveThreshold,
|  | const T | interThreshold,
|  | const int | minSubsetCnt,
|  | const T | minSubsetScore,
|  | const T | scaleFactor = `1.f`,
|  | const bool | maximizePositives = `false`,
|  | Array< T > | pairScoresCpu = `Array< T >{}`,
|  | T * | pairScoresGpuPtr = `nullptr`,
|  | const unsigned int *const | bodyPartPairsGpuPtr = `nullptr`,
|  | const unsigned int *const | mapIdxGpuPtr = `nullptr`,
|  | const T *const | peaksGpuPtr = `nullptr`,
|  | const int | gpuID = `0`
| ) |  |

template<typename T >

std::vector<std::pair<std::vector<int>, T> > op::createPeopleVector | ( | const T *const | heatMapPtr,
|  | const T *const | peaksPtr,
|  | const PoseModel | poseModel,
|  | const Point< int > & | heatMapSize,
|  | const int | maxPeaks,
|  | const T | interThreshold,
|  | const T | interMinAboveThreshold,
|  | const std::vector< unsigned int > & | bodyPartPairs,
|  | const unsigned int | numberBodyParts,
|  | const unsigned int | numberBodyPartPairs,
|  | const Array< T > & | precomputedPAFs = `Array< T >()`
| ) |  |

OP_API std::shared_ptr<Producer> op::createProducer | ( | const ProducerType | producerType = `ProducerType::None`,
|  | const std::string & | producerString = `""`,
|  | const Point< int > & | cameraResolution = `Point< int >{-1,-1}`,
|  | const std::string & | cameraParameterPath = `"models/cameraParameters/"`,
|  | const bool | undistortImage = `true`,
|  | const int | numberViews = `-1`
| ) |  |

This function returns the desired producer given the input parameters.

OP_API void op::cudaCheck | ( | const int | line = `-1`,
|  | const std::string & | function = `""`,
|  | const std::string & | file = `""`
| ) |  |

OP_API std::string op::dataFormatToString | ( | const DataFormat | dataFormat | ) |

template<typename T >

void op::dLog | ( | const T & | message,
|  | const Priority | priority = `Priority::Max`,
|  | const int | line = `-1`,
|  | const std::string & | function = `""`,
|  | const std::string & | file = `""`
| ) |  |
| inline

OP_API void op::drawGridCorners | ( | cv::Mat & | image,
|  | const cv::Size & | gridInnerCorners,
|  | const std::vector< cv::Point2f > & | points2DVector
| ) |  |

OP_API void op::error | ( | const std::string & | message,
|  | const int | line = `-1`,
|  | const std::string & | function = `""`,
|  | const std::string & | file = `""`
| ) |  |

template<typename T >

void op::error | ( | const T & | message,
|  | const int | line = `-1`,
|  | const std::string & | function = `""`,
|  | const std::string & | file = `""`
| ) |  |
| inline

OP_API void op::estimateAndSaveExtrinsics | ( | const std::string & | parameterFolder,
|  | const std::string & | imageFolder,
|  | const Point< int > & | gridInnerCorners,
|  | const float | gridSquareSizeMm,
|  | const int | index0,
|  | const int | index1,
|  | const bool | imagesAreUndistorted,
|  | const bool | combineCam0Extrinsics
| ) |  |

OP_API void op::estimateAndSaveIntrinsics | ( | const Point< int > & | gridInnerCorners,
|  | const float | gridSquareSizeMm,
|  | const int | flags,
|  | const std::string & | outputParameterFolder,
|  | const std::string & | imageFolder,
|  | const std::string & | serialNumber,
|  | const bool | saveImagesWithCorners = `false`
| ) |  |

This function estimate and saves the intrinsic parameters (K and distortion coefficients).

Parameters

  gridInnerCorners | The Point<int> of the board, i.e., the number of squares by width and height
  gridSquareSizeMm | Floating number with the size of a square in your defined unit (point, millimeter,etc).
  flags | Integer with the OpenCV flags for calibration (e.g., CALIB_RATIONAL_MODEL, CALIB_THIN_PRISM_MODEL, or CALIB_TILTED_MODEL)
  outputFilePath | String with the name of the file where to write

OP_API void op::estimateAndSaveSiftFile | ( | const Point< int > & | gridInnerCorners,
|  | const std::string & | imageFolder,
|  | const int | numberCameras,
|  | const bool | saveImagesWithCorners = `false`
| ) |  |

OP_API bool op::existDirectory | ( | const std::string & | directoryPath | ) |

OP_API bool op::existFile | ( | const std::string & | filePath | ) |

template<typename T >

T op::fastMax | ( | const T | a,
|  | const T | b
| ) |  |
| inline

template<typename T >

T op::fastMin | ( | const T | a,
|  | const T | b
| ) |  |
| inline

template<class T >

T op::fastTruncate | ( | T | value,
|  | T | min = `0`,
|  | T | max = `1`
| ) |  |
| inline

OP_API std::pair<bool, std::vector<cv::Point2f> > op::findAccurateGridCorners | ( | const cv::Mat & | image,
|  | const cv::Size & | gridInnerCorners
| ) |  |

OP_API DisplayMode op::flagsToDisplayMode | ( | const int | display,
|  | const bool | enabled3d
| ) |  |

OP_API std::vector<HeatMapType> op::flagsToHeatMaps | ( | const bool | heatMapsAddParts = `false`,
|  | const bool | heatMapsAddBkg = `false`,
|  | const bool | heatMapsAddPAFs = `false`
| ) |  |

OP_API ScaleMode op::flagsToHeatMapScaleMode | ( | const int | heatMapScale | ) |

OP_API Point<int> op::flagsToPoint | ( | const std::string & | pointString,
|  | const std::string & | pointExample = `"1280x720"`
| ) |  |

OP_API PoseModel op::flagsToPoseModel | ( | const std::string & | poseModeString | ) |

OP_API std::pair<ProducerType, std::string> op::flagsToProducer | ( | const std::string & | imageDirectory,
|  | const std::string & | videoPath,
|  | const std::string & | ipCameraPath = `""`,
|  | const int | webcamIndex = `-1`,
|  | const bool | flirCamera = `false`,
|  | const int | flirCameraIndex = `-1`
| ) |  |

OP_API ProducerType op::flagsToProducerType | ( | const std::string & | imageDirectory,
|  | const std::string & | videoPath,
|  | const std::string & | ipCameraPath,
|  | const int | webcamIndex,
|  | const bool | flirCamera
| ) |  |

OP_API RenderMode op::flagsToRenderMode | ( | const int | renderFlag,
|  | const bool | gpuBuggy = `false`,
|  | const int | renderPoseFlag = `-2`
| ) |  |

OP_API ScaleMode op::flagsToScaleMode | ( | const int | keypointScale | ) |

OP_API std::string op::formatAsDirectory | ( | const std::string & | directoryPathString | ) |

This function makes sure that the directoryPathString is properly formatted. I.e., it changes all '\' by '/', and it makes sure that the string finishes with '/'.

Parameters

  directoryPathString | std::string with the directory path to be formatted.

Returns
  std::string with the formatted directory path.

template<typename T >

T op::getAverageScore | ( | const Array< T > & | keypoints,
|  | const int | person
| ) |  |

template<typename T >

int op::getBiggestPerson | ( | const Array< T > & | keypoints,
|  | const T | threshold
| ) |  |

OP_API int op::getCudaGpuNumber | ( |  | ) |

template<typename T >

T op::getDistance | ( | const Array< T > & | keypoints,
|  | const int | person,
|  | const int | elementA,
|  | const int | elementB
| ) |  |

template<typename T >

T op::getDistanceAverage | ( | const Array< T > & | keypoints,
|  | const int | personA,
|  | const int | personB,
|  | const T | threshold
| ) |  |

template<typename T >

T op::getDistanceAverage | ( | const Array< T > & | keypointsA,
|  | const int | personA,
|  | const Array< T > & | keypointsB,
|  | const int | personB,
|  | const T | threshold
| ) |  |

OP_API std::string op::getFileExtension | ( | const std::string & | fullPath | ) |

This function extracts the extension from a full path.

Parameters

  fullPath | std::string with the full path.

Returns
  std::string with the file extension.

OP_API std::string op::getFileNameAndExtension | ( | const std::string & | fullPath | ) |

This function extracts the file name and extension from a full path.

Parameters

  fullPath | std::string with the full path.

Returns
  std::string with the file name with extension.

OP_API std::string op::getFileNameNoExtension | ( | const std::string & | fullPath | ) |

This function extracts the file name (without extension) from a full path.

Parameters

  fullPath | std::string with the full path.

Returns
  std::string with the file name without extension.

OP_API std::string op::getFileParentFolderPath | ( | const std::string & | fullPath | ) |

This function extracts the full file path of the folder where it is contained.

Parameters

  fullPath | std::string with the full path.

Returns
  std::string with the full file path of the folder.

OP_API std::vector<std::string> op::getFilesOnDirectory | ( | const std::string & | directoryPath,
|  | const std::vector< std::string > & | extensions = `{}`
| ) |  |

This function extracts all the files in a directory path with the desired extensions. If no extensions is specified, then all the file names are returned.

Parameters

  directoryPath | std::string with the directory path.
  extensions | std::vector<std::string> with the extensions of the desired files.

Returns
  std::vector<std::string> with the existing file names.

OP_API std::vector<std::string> op::getFilesOnDirectory | ( | const std::string & | directoryPath,
|  | const std::string & | extension
| ) |  |

Analogous to getFilesOnDirectory(const std::string& directoryPath, const std::vector<std::string>& extensions) for 1 specific extension.

Parameters

  directoryPath | std::string with the directory path.
  extension | std::string with the extension of the desired files.

Returns
  std::vector<std::string> with the existing file names.

OP_API std::string op::getFullFilePathNoExtension | ( | const std::string & | fullPath | ) |

This function extracts the full file path without its extension from a full file path.

Parameters

  fullPath | std::string with the full path.

Returns
  std::string with the full file path without extension.

OP_API GpuMode op::getGpuMode | ( |  | ) |

OP_API int op::getGpuNumber | ( |  | ) |

template<typename T >

T op::getKeypointsArea | ( | const Array< T > & | keypoints,
|  | const int | person,
|  | const T | threshold
| ) |  |

template<typename T >

Array<T> op::getKeypointsPerson | ( | const Array< T > & | keypoints,
|  | const int | person,
|  | const bool | noCopy = `false`
| ) |  |

Creates and Array<T> with a specific person.

Parameters

  keypoints | Array<T> with the original data array to slice.
  person | indicates the index of the array to extract.
  noCopy | indicates whether to perform a copy. Copy will never go to undefined behavior, however, if noCopy == true, then: It is faster, as no data copy is involved, but... If the Array keypoints goes out of scope, then the resulting Array will provoke an undefined behavior. If the returned Array is modified, the information in the Array keypoints will also be.

Returns
  Array<T> with the same dimension than keypoints expect the first dimension being 1. E.g., if keypoints is {p,k,m}, the resulting Array<T> is {1,k,m}.

template<typename T >

Rectangle<T> op::getKeypointsRectangle | ( | const Array< T > & | keypoints,
|  | const int | person,
|  | const T | threshold
| ) |  |

template<typename T >

float op::getKeypointsRoi | ( | const Array< T > & | keypoints,
|  | const int | personA,
|  | const int | personB,
|  | const T | threshold
| ) |  |

template<typename T >

float op::getKeypointsRoi | ( | const Array< T > & | keypointsA,
|  | const int | personA,
|  | const Array< T > & | keypointsB,
|  | const int | personB,
|  | const T | threshold
| ) |  |

OP_API unsigned long long op::getLastNumber | ( | const std::string & | string | ) |

template<typename T >

int op::getNonZeroKeypoints | ( | const Array< T > & | keypoints,
|  | const int | person,
|  | const T | threshold
| ) |  |

unsigned int op::getNumberCudaBlocks | ( | const unsigned int | totalRequired,
|  | const unsigned int | numberCudaThreads = `CUDA_NUM_THREADS`
| ) |  |
| inline

OP_API void op::getNumberCudaThreadsAndBlocks | ( | dim3 & | numberCudaThreads,
|  | dim3 & | numberCudaBlocks,
|  | const Point< int > & | frameSize
| ) |  |

OP_API unsigned int op::getNumberElementsToRender | ( | const PoseModel | poseModel | ) |

OP_API std::vector<cv::Point3f> op::getObjects3DVector | ( | const cv::Size & | gridInnerCorners,
|  | const float | gridSquareSizeMm
| ) |  |

OP_API std::array<unsigned int, 4> op::getOutterCornerIndices | ( | const std::vector< cv::Point2f > & | points2DVector,
|  | const cv::Size & | gridInnerCorners
| ) |  |

OP_API const std::map<unsigned int, std::string>& op::getPoseBodyPartMapping | ( | const PoseModel | poseModel | ) |

OP_API const std::vector<unsigned int>& op::getPoseBodyPartPairsRender | ( | const PoseModel | poseModel | ) |

OP_API const std::vector<float>& op::getPoseColors | ( | const PoseModel | poseModel | ) |

OP_API float op::getPoseDefaultConnectInterMinAboveThreshold | ( | const bool | maximizePositives = `false` | ) |

OP_API float op::getPoseDefaultConnectInterThreshold | ( | const PoseModel | poseModel,
|  | const bool | maximizePositives = `false`
| ) |  |

OP_API float op::getPoseDefaultConnectMinSubsetScore | ( | const bool | maximizePositives = `false` | ) |

OP_API unsigned int op::getPoseDefaultMinSubsetCnt | ( | const bool | maximizePositives = `false` | ) |

OP_API float op::getPoseDefaultNmsThreshold | ( | const PoseModel | poseModel,
|  | const bool | maximizePositives = `false`
| ) |  |

OP_API const std::vector<unsigned int>& op::getPoseMapIndex | ( | const PoseModel | poseModel | ) |

OP_API unsigned int op::getPoseMaxPeaks | ( |  | ) |

OP_API float op::getPoseNetDecreaseFactor | ( | const PoseModel | poseModel | ) |

OP_API unsigned int op::getPoseNumberBodyParts | ( | const PoseModel | poseModel | ) |

OP_API const std::vector<unsigned int>& op::getPosePartPairs | ( | const PoseModel | poseModel | ) |

OP_API const std::string& op::getPoseProtoTxt | ( | const PoseModel | poseModel | ) |

OP_API const std::vector<float>& op::getPoseScales | ( | const PoseModel | poseModel | ) |

OP_API const std::string& op::getPoseTrainedModel | ( | const PoseModel | poseModel | ) |

template<typename T >

int op::intRound | ( | const T | a | ) |
| inline

OP_API void op::keepRoiInside | ( | cv::Rect & | roi,
|  | const int | imageWidth,
|  | const int | imageHeight
| ) |  |

OP_API std::vector<cv::Mat> op::loadData | ( | const std::vector< std::string > & | cvMatNames,
|  | const std::string & | fileNameNoExtension,
|  | const DataFormat | dataFormat
| ) |  |

OP_API cv::Mat op::loadData | ( | const std::string & | cvMatName,
|  | const std::string & | fileNameNoExtension,
|  | const DataFormat | dataFormat
| ) |  |

OP_API std::vector<std::array<Rectangle<float>, 2> > op::loadHandDetectorTxt | ( | const std::string & | txtFilePath | ) |

OP_API cv::Mat op::loadImage | ( | const std::string & | fullFilePath,
|  | const int | openCvFlags = `CV_LOAD_IMAGE_ANYDEPTH`
| ) |  |

OP_API void op::log | ( | const std::string & | message,
|  | const Priority | priority = `Priority::Max`,
|  | const int | line = `-1`,
|  | const std::string & | function = `""`,
|  | const std::string & | file = `""`
| ) |  |

template<typename T >

void op::log | ( | const T & | message,
|  | const Priority | priority = `Priority::Max`,
|  | const int | line = `-1`,
|  | const std::string & | function = `""`,
|  | const std::string & | file = `""`
| ) |  |
| inline

template<typename T >

long long op::longLongRound | ( | const T | a | ) |
| inline

template<typename T >

long op::longRound | ( | const T | a | ) |
| inline

OP_API void op::makeDirectory | ( | const std::string & | directoryPath | ) |

template<typename T >

void op::maximumCpu | ( | T * | targetPtr,
|  | const T *const | sourcePtr,
|  | const std::array< int, 4 > & | targetSize,
|  | const std::array< int, 4 > & | sourceSize
| ) |  |

template<typename T >

void op::maximumGpu | ( | T * | targetPtr,
|  | const T *const | sourcePtr,
|  | const std::array< int, 4 > & | targetSize,
|  | const std::array< int, 4 > & | sourceSize
| ) |  |

template<typename T >

std::vector<T> op::mergeVectors | ( | const std::vector< T > & | vectorA,
|  | const std::vector< T > & | vectorB
| ) |  |

std::vector<T> concatenator. Auxiliary function that concatenate std::vectors of any class type T. It assumes basic copy (ideal for smart pointers, pointers, etc.), so note that the copy still shares the same internal data. It will not work for element that cannot be copied.

Parameters

  vectorA | First std::shared_ptr<T> element to be concatenated.
  vectorB | Second std::shared_ptr<T> element to be concatenated.

Returns
  Concatenated std::vector<T> of both vectorA and vectorB.

template<typename T >

void op::nmsCpu | ( | T * | targetPtr,
|  | int * | kernelPtr,
|  | const T *const | sourcePtr,
|  | const T | threshold,
|  | const std::array< int, 4 > & | targetSize,
|  | const std::array< int, 4 > & | sourceSize,
|  | const Point< T > & | offset
| ) |  |

template<typename T >

void op::nmsGpu | ( | T * | targetPtr,
|  | int * | kernelPtr,
|  | const T *const | sourcePtr,
|  | const T | threshold,
|  | const std::array< int, 4 > & | targetSize,
|  | const std::array< int, 4 > & | sourceSize,
|  | const Point< T > & | offset
| ) |  |

template<typename T >

void op::nmsOcl | ( | T * | targetPtr,
|  | uint8_t * | kernelGpuPtr,
|  | uint8_t * | kernelCpuPtr,
|  | const T *const | sourcePtr,
|  | const T | threshold,
|  | const std::array< int, 4 > & | targetSize,
|  | const std::array< int, 4 > & | sourceSize,
|  | const Point< T > & | offset,
|  | const int | gpuID = `0`
| ) |  |

template<typename T >

std::vector<std::tuple<T, T, int, int, int> > op::pafPtrIntoVector | ( | const Array< T > & | pairScores,
|  | const T *const | peaksPtr,
|  | const int | maxPeaks,
|  | const std::vector< unsigned int > & | bodyPartPairs,
|  | const unsigned int | numberBodyPartPairs
| ) |  |

template<typename T >

std::vector<std::pair<std::vector<int>, T> > op::pafVectorIntoPeopleVector | ( | const std::vector< std::tuple< T, T, int, int, int >> & | pairScores,
|  | const T *const | peaksPtr,
|  | const int | maxPeaks,
|  | const std::vector< unsigned int > & | bodyPartPairs,
|  | const unsigned int | numberBodyParts
| ) |  |

template<typename T >

void op::peopleVectorToPeopleArray | ( | Array< T > & | poseKeypoints,
|  | Array< T > & | poseScores,
|  | const T | scaleFactor,
|  | const std::vector< std::pair< std::vector< int >, T >> & | subsets,
|  | const std::vector< int > & | validSubsetIndexes,
|  | const T *const | peaksPtr,
|  | const int | numberPeople,
|  | const unsigned int | numberBodyParts,
|  | const unsigned int | numberBodyPartPairs
| ) |  |

OP_API void op::plotGridCorners | ( | const cv::Size & | gridInnerCorners,
|  | const std::vector< cv::Point2f > & | points2DVector,
|  | const std::string & | imagePath,
|  | const cv::Mat & | image
| ) |  |

OP_API unsigned int op::poseBodyPartMapStringToKey | ( | const PoseModel | poseModel,
|  | const std::string & | string
| ) |  |

OP_API unsigned int op::poseBodyPartMapStringToKey | ( | const PoseModel | poseModel,
|  | const std::vector< std::string > & | strings
| ) |  |

OP_API void op::putTextOnCvMat | ( | cv::Mat & | cvMat,
|  | const std::string & | textToDisplay,
|  | const Point< int > & | position,
|  | const cv::Scalar & | color,
|  | const bool | normalizeWidth,
|  | const int | imageWidth
| ) |  |

OP_API void op::pyramidalLKCpu | ( | std::vector< cv::Point2f > & | coordI,
|  | std::vector< cv::Point2f > & | coordJ,
|  | std::vector< cv::Mat > & | pyramidImagesPrevious,
|  | std::vector< cv::Mat > & | pyramidImagesCurrent,
|  | std::vector< char > & | status,
|  | const cv::Mat & | imagePrevious,
|  | const cv::Mat & | imageCurrent,
|  | const int | levels = `3`,
|  | const int | patchSize = `21`
| ) |  |

int op::pyramidalLKGpu | ( | std::vector< cv::Point2f > & | ptsI,
|  | std::vector< cv::Point2f > & | ptsJ,
|  | std::vector< char > & | status,
|  | const cv::Mat & | imagePrevious,
|  | const cv::Mat & | imageCurrent,
|  | const int | levels = `3`,
|  | const int | patchSize = `21`
| ) |  |

OP_API void op::pyramidalLKOcv | ( | std::vector< cv::Point2f > & | coordI,
|  | std::vector< cv::Point2f > & | coordJ,
|  | std::vector< cv::Mat > & | pyramidImagesPrevious,
|  | std::vector< cv::Mat > & | pyramidImagesCurrent,
|  | std::vector< char > & | status,
|  | const cv::Mat & | imagePrevious,
|  | const cv::Mat & | imageCurrent,
|  | const int | levels = `3`,
|  | const int | patchSize = `21`,
|  | const bool | initFlow = `false`
| ) |  |

template<typename T >

Rectangle<T> op::recenter | ( | const Rectangle< T > & | rectangle,
|  | const T | newWidth,
|  | const T | newHeight
| ) |  |

OP_API void op::refineAndSaveExtrinsics | ( | const std::string & | parameterFolder,
|  | const std::string & | imageFolder,
|  | const Point< int > & | gridInnerCorners,
|  | const float | gridSquareSizeMm,
|  | const int | numberCameras,
|  | const bool | imagesAreUndistorted,
|  | const bool | saveImagesWithCorners = `false`
| ) |  |

OP_API void op::removeAllOcurrencesOfSubString | ( | std::string & | stringToModify,
|  | const std::string & | substring
| ) |  |

template<typename T >

void op::removePeopleBelowThresholds | ( | std::vector< int > & | validSubsetIndexes,
|  | int & | numberPeople,
|  | const std::vector< std::pair< std::vector< int >, T >> & | subsets,
|  | const unsigned int | numberBodyParts,
|  | const int | minSubsetCnt,
|  | const T | minSubsetScore,
|  | const int | maxPeaks,
|  | const bool | maximizePositives
| ) |  |

OP_API std::string op::removeSpecialsCharacters | ( | const std::string & | stringToVariate | ) |

OP_API void op::renderFaceKeypointsCpu | ( | Array< float > & | frameArray,
|  | const Array< float > & | faceKeypoints,
|  | const float | renderThreshold
| ) |  |

void op::renderFaceKeypointsGpu | ( | float * | framePtr,
|  | const Point< int > & | frameSize,
|  | const float *const | facePtr,
|  | const int | numberPeople,
|  | const float | renderThreshold,
|  | const float | alphaColorToAdd = `FACE_DEFAULT_ALPHA_KEYPOINT`
| ) |  |

OP_API void op::renderHandKeypointsCpu | ( | Array< float > & | frameArray,
|  | const std::array< Array< float >, 2 > & | handKeypoints,
|  | const float | renderThreshold
| ) |  |

void op::renderHandKeypointsGpu | ( | float * | framePtr,
|  | const Point< int > & | frameSize,
|  | const float *const | handsPtr,
|  | const int | numberHands,
|  | const float | renderThreshold,
|  | const float | alphaColorToAdd = `HAND_DEFAULT_ALPHA_KEYPOINT`
| ) |  |

template<typename T >

void op::renderKeypointsCpu | ( | Array< T > & | frameArray,
|  | const Array< T > & | keypoints,
|  | const std::vector< unsigned int > & | pairs,
|  | const std::vector< T > | colors,
|  | const T | thicknessCircleRatio,
|  | const T | thicknessLineRatioWRTCircle,
|  | const std::vector< T > & | poseScales,
|  | const T | threshold
| ) |  |

void op::renderPoseDistanceGpu | ( | float * | framePtr,
|  | const Point< int > & | frameSize,
|  | const float *const | heatMapPtr,
|  | const Point< int > & | heatMapSize,
|  | const float | scaleToKeepRatio,
|  | const unsigned int | part,
|  | const float | alphaBlending = `POSE_DEFAULT_ALPHA_HEAT_MAP`
| ) |  |

void op::renderPoseHeatMapGpu | ( | float * | frame,
|  | const Point< int > & | frameSize,
|  | const float *const | heatMapPtr,
|  | const Point< int > & | heatMapSize,
|  | const float | scaleToKeepRatio,
|  | const unsigned int | part,
|  | const float | alphaBlending = `POSE_DEFAULT_ALPHA_HEAT_MAP`
| ) |  |

void op::renderPoseHeatMapsGpu | ( | float * | frame,
|  | const PoseModel | poseModel,
|  | const Point< int > & | frameSize,
|  | const float *const | heatMapPtr,
|  | const Point< int > & | heatMapSize,
|  | const float | scaleToKeepRatio,
|  | const float | alphaBlending = `POSE_DEFAULT_ALPHA_HEAT_MAP`
| ) |  |

OP_API void op::renderPoseKeypointsCpu | ( | Array< float > & | frameArray,
|  | const Array< float > & | poseKeypoints,
|  | const PoseModel | poseModel,
|  | const float | renderThreshold,
|  | const bool | blendOriginalFrame = `true`
| ) |  |

void op::renderPoseKeypointsGpu | ( | float * | framePtr,
|  | const PoseModel | poseModel,
|  | const int | numberPeople,
|  | const Point< int > & | frameSize,
|  | const float *const | posePtr,
|  | const float | renderThreshold,
|  | const bool | googlyEyes = `false`,
|  | const bool | blendOriginalFrame = `true`,
|  | const float | alphaBlending = `POSE_DEFAULT_ALPHA_KEYPOINT`
| ) |  |

void op::renderPosePAFGpu | ( | float * | framePtr,
|  | const PoseModel | poseModel,
|  | const Point< int > & | frameSize,
|  | const float *const | heatMapPtr,
|  | const Point< int > & | heatMapSize,
|  | const float | scaleToKeepRatio,
|  | const int | part,
|  | const float | alphaBlending = `POSE_DEFAULT_ALPHA_HEAT_MAP`
| ) |  |

void op::renderPosePAFsGpu | ( | float * | framePtr,
|  | const PoseModel | poseModel,
|  | const Point< int > & | frameSize,
|  | const float *const | heatMapPtr,
|  | const Point< int > & | heatMapSize,
|  | const float | scaleToKeepRatio,
|  | const float | alphaBlending = `POSE_DEFAULT_ALPHA_HEAT_MAP`
| ) |  |

OP_API void op::reorderPoints | ( | std::vector< cv::Point2f > & | points2DVector,
|  | const cv::Size & | gridInnerCorners,
|  | const cv::Mat & | image,
|  | const bool | showWarning = `true`
| ) |  |

OP_API void op::replaceAll | ( | std::string & | stringText,
|  | const char | charToChange,
|  | const char | charToAdd
| ) |  |

template<typename T >

void op::resizeAndMergeCpu | ( | T * | targetPtr,
|  | const std::vector< const T * > & | sourcePtrs,
|  | const std::array< int, 4 > & | targetSize,
|  | const std::vector< std::array< int, 4 >> & | sourceSizes,
|  | const std::vector< T > & | scaleInputToNetInputs = `{1.f}`
| ) |  |

template<typename T >

void op::resizeAndMergeGpu | ( | T * | targetPtr,
|  | const std::vector< const T * > & | sourcePtrs,
|  | const std::array< int, 4 > & | targetSize,
|  | const std::vector< std::array< int, 4 >> & | sourceSizes,
|  | const std::vector< T > & | scaleInputToNetInputs = `{1.f}`
| ) |  |

template<typename T >

void op::resizeAndMergeOcl | ( | T * | targetPtr,
|  | const std::vector< const T * > & | sourcePtrs,
|  | std::vector< T * > & | sourceTempPtrs,
|  | const std::array< int, 4 > & | targetSize,
|  | const std::vector< std::array< int, 4 >> & | sourceSizes,
|  | const std::vector< T > & | scaleInputToNetInputs = `{1.f}`,
|  | const int | gpuID = `0`
| ) |  |

OP_API void op::resizeFixedAspectRatio | ( | cv::Mat & | resizedCvMat,
|  | const cv::Mat & | cvMat,
|  | const double | scaleFactor,
|  | const Point< int > & | targetSize,
|  | const int | borderMode = `cv::BORDER_CONSTANT`,
|  | const cv::Scalar & | borderValue = `cv::Scalar{0, 0, 0}`
| ) |  |

OP_API double op::resizeGetScaleFactor | ( | const Point< int > & | initialSize,
|  | const Point< int > & | targetSize
| ) |  |

OP_API void op::saveData | ( | const std::vector< cv::Mat > & | cvMats,
|  | const std::vector< std::string > & | cvMatNames,
|  | const std::string & | fileNameNoExtension,
|  | const DataFormat | dataFormat
| ) |  |

OP_API void op::saveData | ( | const cv::Mat & | cvMat,
|  | const std::string | cvMatName,
|  | const std::string & | fileNameNoExtension,
|  | const DataFormat | dataFormat
| ) |  |

OP_API void op::saveFloatArray | ( | const Array< float > & | array,
|  | const std::string & | fullFilePath
| ) |  |

OP_API void op::saveImage | ( | const cv::Mat & | cvMat,
|  | const std::string & | fullFilePath,
|  | const std::vector< int > & | openCvCompressionParams = `{CV_IMWRITE_JPEG_QUALITY, 100, CV_IMWRITE_PNG_COMPRESSION, 9}`
| ) |  |

OP_API void op::savePeopleJson | ( | const Array< float > & | keypoints,
|  | const std::vector< std::vector< std::array< float, 3 >>> & | candidates,
|  | const std::string & | keypointName,
|  | const std::string & | fileName,
|  | const bool | humanReadable
| ) |  |

OP_API void op::savePeopleJson | ( | const std::vector< std::pair< Array< float >, std::string >> & | keypointVector,
|  | const std::vector< std::vector< std::array< float, 3 >>> & | candidates,
|  | const std::string & | fileName,
|  | const bool | humanReadable
| ) |  |

template<typename T >

void op::scaleKeypoints | ( | Array< T > & | keypoints,
|  | const T | scale
| ) |  |

template<typename T >

void op::scaleKeypoints2d | ( | Array< T > & | keypoints,
|  | const T | scaleX,
|  | const T | scaleY
| ) |  |

template<typename T >

void op::scaleKeypoints2d | ( | Array< T > & | keypoints,
|  | const T | scaleX,
|  | const T | scaleY,
|  | const T | offsetX,
|  | const T | offsetY
| ) |  |

template<typename T >

signed char op::sCharRound | ( | const T | a | ) |
| inline

OP_API std::vector<std::string> op::splitString | ( | const std::string & | stringToSplit,
|  | const std::string & | delimiter
| ) |  |

OP_API DataFormat op::stringToDataFormat | ( | const std::string & | dataFormat | ) |

OP_API void op::threadIdPP | ( | unsigned long long & | threadId,
|  | const bool | multiThreadEnabled
| ) |  |

Thread ID increase (private internal function). If multi-threading mode, it increases the thread ID. If single-threading mode (for debugging), it does not modify it. Note that mThreadId must be re-initialized to 0 before starting a new Wrapper(T) configuration.

Parameters

  threadId | unsigned long long element with the current thread id value. I will be edited to the next `desired thread id number.

template<typename T >

std::string op::toFixedLengthString | ( | const T | number,
|  | const unsigned long long | stringLength = `0`
| ) |  |

This template function turns an integer number into a fixed-length std::string.

Parameters

  number | T integer corresponding to the integer to be formatted.
  stringLength | unsigned long long indicating the final length. If 0, the final length is the original number length.

Returns
  std::string with the formatted value.

OP_API std::string op::toLower | ( | const std::string & | string | ) |

OP_API std::string op::toUpper | ( | const std::string & | string | ) |

OP_API double op::triangulate | ( | cv::Mat & | reconstructedPoint,
|  | const std::vector< cv::Mat > & | cameraMatrices,
|  | const std::vector< cv::Point2d > & | pointsOnEachCamera
| ) |  |

3D triangulation given known camera parameter matrices and based on linear DLT algorithm. The returned cv::Mat is a 4x1 matrix, where the last coordinate is 1.

OP_API double op::triangulateWithOptimization | ( | cv::Mat & | reconstructedPoint,
|  | const std::vector< cv::Mat > & | cameraMatrices,
|  | const std::vector< cv::Point2d > & | pointsOnEachCamera,
|  | const double | reprojectionMaxAcceptable
| ) |  |

3D triangulation given known camera parameter matrices and based on linear DLT algorithm with additional LMA non-linear refinement. The returned cv::Mat is a 4x1 matrix, where the last coordinate is 1. Note: If Ceres is not enabled, the LMA refinement is skipped and this function is equivalent to triangulate().

template<typename T >

std::string op::tToString | ( | const T & | message | ) |

OP_API void op::uCharCvMatToFloatPtr | ( | float * | floatPtrImage,
|  | const cv::Mat & | cvImage,
|  | const int | normalize
| ) |  |

template<typename T >

unsigned char op::uCharRound | ( | const T | a | ) |
| inline

template<typename T >

unsigned int op::uIntRound | ( | const T | a | ) |
| inline

template<typename T >

unsigned long long op::uLongLongRound | ( | const T | a | ) |
| inline

template<typename T >

unsigned long op::ulongRound | ( | const T | a | ) |
| inline

OP_API void op::unrollArrayToUCharCvMat | ( | cv::Mat & | cvMatResult,
|  | const Array< float > & | array
| ) |  |

template<typename T >

bool op::vectorsAreEqual | ( | const std::vector< T > & | vectorA,
|  | const std::vector< T > & | vectorB
| ) |  |

OP_API void op::wrapperConfigureSanityChecks | ( | WrapperStructPose & | wrapperStructPose,
|  | const WrapperStructFace & | wrapperStructFace,
|  | const WrapperStructHand & | wrapperStructHand,
|  | const WrapperStructExtra & | wrapperStructExtra,
|  | const WrapperStructInput & | wrapperStructInput,
|  | const WrapperStructOutput & | wrapperStructOutput,
|  | const WrapperStructGui & | wrapperStructGui,
|  | const bool | renderOutput,
|  | const bool | userOutputWsEmpty,
|  | const std::shared_ptr< Producer > & | producerSharedPtr,
|  | const ThreadManagerMode | threadManagerMode
| ) |  |

It checks that no wrong/contradictory flags are enabled for Wrapper(T)

Parameters

  wrapperStructPose |
  wrapperStructFace |
  wrapperStructHand |
  wrapperStructExtra |
  wrapperStructInput |
  wrapperStructOutput |
  renderOutput |
  userOutputWsEmpty |
  producerSharedPtr |
  threadManagerMode |

## Variable Documentation

const auto op::CUDA_NUM_THREADS = 512u

const auto op::F95 = 25

const auto op::FACE_CCN_DECREASE_FACTOR = 8.f

const std::vector<float> op::FACE_COLORS_RENDER {FACE_COLORS_RENDER_GPU}

const auto op::FACE_DEFAULT_ALPHA_HEAT_MAP = POSE_DEFAULT_ALPHA_HEAT_MAP

const auto op::FACE_DEFAULT_ALPHA_KEYPOINT = POSE_DEFAULT_ALPHA_KEYPOINT

const auto op::FACE_MAX_FACES = POSE_MAX_PEOPLE

const auto op::FACE_NUMBER_PARTS = 70u

const std::vector<unsigned int> op::FACE_PAIRS_RENDER {FACE_PAIRS_RENDER_GPU}

const std::string op::FACE_PROTOTXT {"face/pose_deploy.prototxt"}

const std::vector<float> op::FACE_SCALES_RENDER {FACE_SCALES_RENDER_GPU}

const std::string op::FACE_TRAINED_MODEL {"face/pose_iter_116000.caffemodel"}

const auto op::HAND_CCN_DECREASE_FACTOR = 8.f

const std::vector<float> op::HAND_COLORS_RENDER {HAND_COLORS_RENDER_GPU}

const auto op::HAND_DEFAULT_ALPHA_HEAT_MAP = POSE_DEFAULT_ALPHA_HEAT_MAP

const auto op::HAND_DEFAULT_ALPHA_KEYPOINT = POSE_DEFAULT_ALPHA_KEYPOINT

const auto op::HAND_MAX_HANDS = 2*POSE_MAX_PEOPLE

const auto op::HAND_NUMBER_PARTS = 21u

const std::vector<unsigned int> op::HAND_PAIRS_RENDER {HAND_PAIRS_RENDER_GPU}

const std::string op::HAND_PROTOTXT {"hand/pose_deploy.prototxt"}

const std::vector<float> op::HAND_SCALES_RENDER {HAND_SCALES_RENDER_GPU}

const std::string op::HAND_TRAINED_MODEL {"hand/pose_iter_102000.caffemodel"}

const auto op::POSE_DEFAULT_ALPHA_HEAT_MAP = 0.7f

const auto op::POSE_DEFAULT_ALPHA_KEYPOINT = 0.6f

const auto op::POSE_MAX_PEOPLE = 127u

op::spTQueueIn

op::spTQueueOut