From 39a0d767b05c23d55c9427ce623f7eb087505f3a Mon Sep 17 00:00:00 2001 From: Gines Date: Tue, 11 Jul 2017 15:27:03 -0400 Subject: [PATCH] Version 1.0.1: Windows DLL library --- Makefile | 2 +- doc/release_notes.md | 11 +++- include/openpose/core/common.hpp | 9 ++++ include/openpose/core/cvMatToOpInput.hpp | 5 +- include/openpose/core/cvMatToOpOutput.hpp | 5 +- include/openpose/core/datum.hpp | 6 +-- include/openpose/core/headers.hpp | 2 + include/openpose/core/keypointScaler.hpp | 5 +- include/openpose/core/macros.hpp | 52 +++++++++++++++++++ include/openpose/core/maximumBase.hpp | 5 +- include/openpose/core/maximumCaffe.hpp | 5 +- include/openpose/core/net.hpp | 4 +- include/openpose/core/netCaffe.hpp | 4 +- include/openpose/core/nmsBase.hpp | 5 +- include/openpose/core/nmsCaffe.hpp | 5 +- include/openpose/core/opOutputToCvMat.hpp | 5 +- include/openpose/core/renderer.hpp | 4 +- include/openpose/core/resizeAndMergeBase.hpp | 9 ++-- include/openpose/core/resizeAndMergeCaffe.hpp | 4 +- include/openpose/core/wCvMatToOpInput.hpp | 2 +- include/openpose/core/wCvMatToOpOutput.hpp | 2 +- include/openpose/core/wKeypointScaler.hpp | 2 +- include/openpose/core/wOpOutputToCvMat.hpp | 2 +- include/openpose/face/faceDetector.hpp | 4 +- include/openpose/face/faceExtractor.hpp | 3 +- include/openpose/face/faceRenderer.hpp | 3 +- include/openpose/face/renderFace.hpp | 7 +-- include/openpose/face/wFaceDetector.hpp | 2 +- include/openpose/face/wFaceExtractor.hpp | 2 +- include/openpose/face/wFaceRenderer.hpp | 2 +- include/openpose/filestream/cocoJsonSaver.hpp | 4 +- include/openpose/filestream/fileSaver.hpp | 3 +- include/openpose/filestream/fileStream.hpp | 21 ++++---- include/openpose/filestream/heatMapSaver.hpp | 3 +- include/openpose/filestream/imageSaver.hpp | 3 +- include/openpose/filestream/jsonOfstream.hpp | 4 +- .../openpose/filestream/keypointJsonSaver.hpp | 3 +- include/openpose/filestream/keypointSaver.hpp | 3 +- include/openpose/filestream/videoSaver.hpp | 4 +- .../openpose/filestream/wCocoJsonSaver.hpp | 2 +- include/openpose/filestream/wFaceSaver.hpp | 2 +- include/openpose/filestream/wHandSaver.hpp | 2 +- include/openpose/filestream/wHeatMapSaver.hpp | 2 +- include/openpose/filestream/wImageSaver.hpp | 2 +- .../filestream/wKeypointJsonSaver.hpp | 2 +- include/openpose/filestream/wPoseSaver.hpp | 2 +- include/openpose/filestream/wVideoSaver.hpp | 2 +- include/openpose/gui/frameDisplayer.hpp | 3 +- include/openpose/gui/gui.hpp | 3 +- include/openpose/gui/guiInfoAdder.hpp | 3 +- include/openpose/gui/wGui.hpp | 2 +- include/openpose/gui/wGuiInfoAdder.hpp | 2 +- include/openpose/hand/handDetector.hpp | 4 +- include/openpose/hand/handDetectorFromTxt.hpp | 4 +- include/openpose/hand/handExtractor.hpp | 4 +- include/openpose/hand/handRenderer.hpp | 3 +- include/openpose/hand/renderHand.hpp | 11 ++-- include/openpose/hand/wHandDetector.hpp | 2 +- .../openpose/hand/wHandDetectorFromTxt.hpp | 2 +- .../openpose/hand/wHandDetectorTracking.hpp | 2 +- include/openpose/hand/wHandDetectorUpdate.hpp | 2 +- include/openpose/hand/wHandExtractor.hpp | 2 +- include/openpose/hand/wHandRenderer.hpp | 2 +- .../openpose/pose/bodyPartConnectorBase.hpp | 9 ++-- .../openpose/pose/bodyPartConnectorCaffe.hpp | 4 +- include/openpose/pose/poseExtractor.hpp | 4 +- include/openpose/pose/poseExtractorCaffe.hpp | 4 +- include/openpose/pose/poseParameters.hpp | 5 +- include/openpose/pose/poseRenderer.hpp | 4 +- include/openpose/pose/renderPose.hpp | 36 ++++++------- include/openpose/pose/wPoseExtractor.hpp | 2 +- include/openpose/pose/wPoseRenderer.hpp | 2 +- include/openpose/producer/datumProducer.hpp | 4 +- .../producer/imageDirectoryReader.hpp | 3 +- include/openpose/producer/producer.hpp | 4 +- .../openpose/producer/videoCaptureReader.hpp | 3 +- include/openpose/producer/videoReader.hpp | 3 +- include/openpose/producer/wDatumProducer.hpp | 2 +- include/openpose/producer/webcamReader.hpp | 3 +- include/openpose/thread/priorityQueue.hpp | 2 +- include/openpose/thread/queue.hpp | 4 +- include/openpose/thread/queueBase.hpp | 4 +- include/openpose/thread/subThread.hpp | 4 +- include/openpose/thread/subThreadNoQueue.hpp | 2 +- include/openpose/thread/subThreadQueueIn.hpp | 2 +- .../openpose/thread/subThreadQueueInOut.hpp | 2 +- include/openpose/thread/subThreadQueueOut.hpp | 2 +- include/openpose/thread/thread.hpp | 2 +- include/openpose/thread/threadManager.hpp | 2 +- include/openpose/thread/wIdGenerator.hpp | 2 +- include/openpose/thread/wQueueOrderer.hpp | 2 +- include/openpose/thread/worker.hpp | 4 +- include/openpose/thread/workerConsumer.hpp | 2 +- include/openpose/thread/workerProducer.hpp | 2 +- include/openpose/utilities/cuda.hpp | 9 ++-- include/openpose/utilities/errorAndLog.hpp | 10 ++-- include/openpose/utilities/fileSystem.hpp | 19 +++---- .../openpose/utilities/flagsToOpenPose.hpp | 21 ++++---- include/openpose/utilities/headers.hpp | 1 - include/openpose/utilities/keypoint.hpp | 29 ++++++----- include/openpose/utilities/macros.hpp | 39 -------------- include/openpose/utilities/openCv.hpp | 18 ++++--- .../openpose/utilities/pointerContainer.hpp | 6 ++- include/openpose/utilities/profiler.hpp | 3 +- include/openpose/utilities/string.hpp | 5 +- .../openpose/wrapper/wrapperStructFace.hpp | 3 +- .../openpose/wrapper/wrapperStructHand.hpp | 3 +- .../openpose/wrapper/wrapperStructInput.hpp | 3 +- .../openpose/wrapper/wrapperStructOutput.hpp | 3 +- .../openpose/wrapper/wrapperStructPose.hpp | 3 +- src/openpose/core/array.cpp | 1 + src/openpose/core/maximumBase.cpp | 1 - src/openpose/core/maximumCaffe.cpp | 1 - src/openpose/core/nmsBase.cpp | 1 - src/openpose/core/nmsCaffe.cpp | 1 - src/openpose/core/point.cpp | 2 +- src/openpose/core/rectangle.cpp | 2 +- src/openpose/core/resizeAndMergeBase.cpp | 1 - src/openpose/core/resizeAndMergeCaffe.cpp | 1 - src/openpose/pose/bodyPartConnectorCaffe.cpp | 2 +- src/openpose/producer/defineTemplates.cpp | 4 +- src/openpose/thread/defineTemplates.cpp | 4 +- src/openpose/utilities/profiler.cpp | 2 +- src/openpose/wrapper/defineTemplates.cpp | 2 +- windows/OpenPose/OpenPose.vcxproj | 25 ++++++--- windows/OpenPose/OpenPose.vcxproj.filters | 9 ++-- windows/OpenPoseDemo/OpenPoseDemo.vcxproj | 1 + .../TutorialPose/1_extract_from_image.vcxproj | 1 + ...extract_pose_or_heatmat_from_image.vcxproj | 1 + .../1_openpose_read_and_display.vcxproj | 1 + .../2_user_processing_function.vcxproj | 1 + ...3_user_input_processing_and_output.vcxproj | 1 + ..._input_processing_output_and_datum.vcxproj | 1 + .../1_user_asynchronous.vcxproj | 1 + .../2_user_synchronous.vcxproj | 1 + 135 files changed, 377 insertions(+), 289 deletions(-) create mode 100644 include/openpose/core/common.hpp create mode 100644 include/openpose/core/macros.hpp delete mode 100644 include/openpose/utilities/macros.hpp diff --git a/Makefile b/Makefile index e4b403567..8e2109b81 100644 --- a/Makefile +++ b/Makefile @@ -34,7 +34,7 @@ LIB_BUILD_DIR := $(BUILD_DIR)/lib STATIC_NAME := $(LIB_BUILD_DIR)/lib$(LIBRARY_NAME).a DYNAMIC_VERSION_MAJOR := 1 DYNAMIC_VERSION_MINOR := 0 -DYNAMIC_VERSION_REVISION := 0 +DYNAMIC_VERSION_REVISION := 1 DYNAMIC_NAME_SHORT := lib$(LIBRARY_NAME).so #DYNAMIC_SONAME_SHORT := $(DYNAMIC_NAME_SHORT).$(DYNAMIC_VERSION_MAJOR) DYNAMIC_VERSIONED_NAME_SHORT := $(DYNAMIC_NAME_SHORT).$(DYNAMIC_VERSION_MAJOR).$(DYNAMIC_VERSION_MINOR).$(DYNAMIC_VERSION_REVISION) diff --git a/doc/release_notes.md b/doc/release_notes.md index 250a69cf7..d962d597e 100644 --- a/doc/release_notes.md +++ b/doc/release_notes.md @@ -74,5 +74,14 @@ OpenPose Library - Release Notes -## Current version (future OpenPose 1.0.1) +## OpenPose 1.0.1 +1. Main improvements: + 1. Windows library turned into DLL dynamic library (i.e. portable). + 2. Improved documentation. +2. Functions or parameters renamed: + 1. `openpose/utilities/macros.hpp` moved to `openpose/utilities/macros.hpp`. + + + +## Current version (future OpenPose 1.0.2) 1. No changes yet. diff --git a/include/openpose/core/common.hpp b/include/openpose/core/common.hpp new file mode 100644 index 000000000..8e3ca2287 --- /dev/null +++ b/include/openpose/core/common.hpp @@ -0,0 +1,9 @@ +#ifndef OPENPOSE_CORE_COMMON_HPP +#define OPENPOSE_CORE_COMMON_HPP + +#include "rectangle.hpp" +#include "array.hpp" +#include "macros.hpp" +#include "point.hpp" + +#endif // OPENPOSE_CORE_COMMON_HPP diff --git a/include/openpose/core/cvMatToOpInput.hpp b/include/openpose/core/cvMatToOpInput.hpp index 4f87bbf4c..ddbeb4760 100644 --- a/include/openpose/core/cvMatToOpInput.hpp +++ b/include/openpose/core/cvMatToOpInput.hpp @@ -4,12 +4,11 @@ #include // std::pair #include #include // cv::Mat -#include "array.hpp" -#include "point.hpp" +#include "common.hpp" namespace op { - class CvMatToOpInput + class OP_API CvMatToOpInput { public: CvMatToOpInput(const Point& netInputResolution, const int scaleNumber = 1, const float scaleGap = 0.25); diff --git a/include/openpose/core/cvMatToOpOutput.hpp b/include/openpose/core/cvMatToOpOutput.hpp index d33dc1a91..3bcbb337d 100644 --- a/include/openpose/core/cvMatToOpOutput.hpp +++ b/include/openpose/core/cvMatToOpOutput.hpp @@ -3,12 +3,11 @@ #include #include // cv::Mat -#include "array.hpp" -#include "point.hpp" +#include "common.hpp" namespace op { - class CvMatToOpOutput + class OP_API CvMatToOpOutput { public: CvMatToOpOutput(const Point& outputResolution, const bool generateOutput = true); diff --git a/include/openpose/core/datum.hpp b/include/openpose/core/datum.hpp index e49d57615..d5319e2ab 100644 --- a/include/openpose/core/datum.hpp +++ b/include/openpose/core/datum.hpp @@ -5,9 +5,7 @@ #include // std::shared_ptr #include #include // cv::Mat -#include "array.hpp" -#include "point.hpp" -#include "rectangle.hpp" +#include "common.hpp" namespace op { @@ -16,7 +14,7 @@ namespace op * Datum is one the main OpenPose classes/structs. The workers and threads share by default a std::shared_ptr>. It contains * all the parameters that the different workers and threads need to exchange. */ - struct Datum + struct OP_API Datum { // -------------------------------------------------- ID parameters -------------------------------------------------- // unsigned long long id; /**< Datum ID. Internally used to sort the Datums if multi-threading is used. */ diff --git a/include/openpose/core/headers.hpp b/include/openpose/core/headers.hpp index 513879ef0..7489acb91 100644 --- a/include/openpose/core/headers.hpp +++ b/include/openpose/core/headers.hpp @@ -3,11 +3,13 @@ // core module #include "array.hpp" +#include "common.hpp" #include "cvMatToOpInput.hpp" #include "cvMatToOpOutput.hpp" #include "datum.hpp" #include "enumClasses.hpp" #include "keypointScaler.hpp" +#include "macros.hpp" #include "net.hpp" #include "netCaffe.hpp" #include "nmsBase.hpp" diff --git a/include/openpose/core/keypointScaler.hpp b/include/openpose/core/keypointScaler.hpp index 1046aee48..6c851fe53 100644 --- a/include/openpose/core/keypointScaler.hpp +++ b/include/openpose/core/keypointScaler.hpp @@ -2,13 +2,12 @@ #define OPENPOSE_CORE_KEYPOINT_SCALER_HPP #include -#include "array.hpp" -#include "point.hpp" +#include "common.hpp" #include "enumClasses.hpp" namespace op { - class KeypointScaler + class OP_API KeypointScaler { public: explicit KeypointScaler(const ScaleMode scaleMode); diff --git a/include/openpose/core/macros.hpp b/include/openpose/core/macros.hpp new file mode 100644 index 000000000..3e12b4454 --- /dev/null +++ b/include/openpose/core/macros.hpp @@ -0,0 +1,52 @@ +#ifndef OPENPOSE_UTILITIES_MACROS_HPP +#define OPENPOSE_UTILITIES_MACROS_HPP + +#ifndef _WIN32 + #define OP_API +#elif defined OP_EXPORTS + #define OP_API __declspec(dllexport) +#else + #define OP_API __declspec(dllimport) +#endif + +#define DATUM_BASE_NO_PTR std::vector +#define DATUM_BASE std::shared_ptr +#define DEFINE_TEMPLATE_DATUM(templateName) template class OP_API templateName +#define COMPILE_TEMPLATE_DATUM(templateName) extern DEFINE_TEMPLATE_DATUM(templateName) + +#define UNUSED(unusedVariable) (void)(unusedVariable) + +#define DELETE_COPY(className) \ + className(const className&) = delete; \ + className& operator=(const className&) = delete + +#define COMPILE_TEMPLATE_BASIC_TYPES_CLASS(className) COMPILE_TEMPLATE_BASIC_TYPES(className, class) + +#define COMPILE_TEMPLATE_BASIC_TYPES_STRUCT(className) COMPILE_TEMPLATE_BASIC_TYPES(className, struct) + +#define COMPILE_TEMPLATE_BASIC_TYPES(className, classType) \ + template classType OP_API className; \ + template classType OP_API className; \ + template classType OP_API className; \ + template classType OP_API className; \ + template classType OP_API className; \ + template classType OP_API className; \ + template classType OP_API className; \ + template classType OP_API className; \ + template classType OP_API className; \ + template classType OP_API className; \ + template classType OP_API className; \ + template classType OP_API className; \ + template classType OP_API className; \ + template classType OP_API className + +// Includes at the end, since this macros class does not need them, but the files that call this +// file. However, keeping the files at the beginning might create a circular include linking problem. +#include // std::shared_ptr +#include +#include +#include +#include +#include + +#endif // OPENPOSE_UTILITIES_MACROS_HPP diff --git a/include/openpose/core/maximumBase.hpp b/include/openpose/core/maximumBase.hpp index e5343f429..5e0075909 100644 --- a/include/openpose/core/maximumBase.hpp +++ b/include/openpose/core/maximumBase.hpp @@ -2,14 +2,15 @@ #define OPENPOSE_CORE_MAXIMUM_BASE_HPP #include +#include "common.hpp" namespace op { template - void maximumCpu(T* targetPtr, const T* const sourcePtr, const std::array& targetSize, const std::array& sourceSize); + OP_API void maximumCpu(T* targetPtr, const T* const sourcePtr, const std::array& targetSize, const std::array& sourceSize); template - void maximumGpu(T* targetPtr, const T* const sourcePtr, const std::array& targetSize, const std::array& sourceSize); + OP_API void maximumGpu(T* targetPtr, const T* const sourcePtr, const std::array& targetSize, const std::array& sourceSize); } #endif // OPENPOSE_CORE_MAXIMUM_BASE_HPP diff --git a/include/openpose/core/maximumCaffe.hpp b/include/openpose/core/maximumCaffe.hpp index 8c7ae3970..a945d925e 100644 --- a/include/openpose/core/maximumCaffe.hpp +++ b/include/openpose/core/maximumCaffe.hpp @@ -3,14 +3,15 @@ #define OPENPOSE_CORE_MAXIMUM_CAFFE_HPP #include -#include "caffe/blob.hpp" +#include +#include "common.hpp" namespace op { // It mostly follows the Caffe::layer implementation, so Caffe users can easily use it. However, in order to keep the compatibility with any generic Caffe version, // we keep this 'layer' inside our library rather than in the Caffe code. template - class MaximumCaffe + class OP_API MaximumCaffe { public: explicit MaximumCaffe(); diff --git a/include/openpose/core/net.hpp b/include/openpose/core/net.hpp index fe8035d18..aa8bca603 100644 --- a/include/openpose/core/net.hpp +++ b/include/openpose/core/net.hpp @@ -1,9 +1,11 @@ #ifndef OPENPOSE_CORE_NET_HPP #define OPENPOSE_CORE_NET_HPP +#include "common.hpp" + namespace op { - class Net + class OP_API Net { public: virtual void initializationOnThread() = 0; diff --git a/include/openpose/core/netCaffe.hpp b/include/openpose/core/netCaffe.hpp index 38615492e..6401ec8bf 100644 --- a/include/openpose/core/netCaffe.hpp +++ b/include/openpose/core/netCaffe.hpp @@ -6,12 +6,12 @@ #include // std::shared_ptr #include #include -#include +#include "common.hpp" #include "net.hpp" namespace op { - class NetCaffe : public Net + class OP_API NetCaffe : public Net { public: NetCaffe(const std::array& netInputSize4D, const std::string& caffeProto, const std::string& caffeTrainedModel, const int gpuId = 0, diff --git a/include/openpose/core/nmsBase.hpp b/include/openpose/core/nmsBase.hpp index b591b6596..2114fff08 100644 --- a/include/openpose/core/nmsBase.hpp +++ b/include/openpose/core/nmsBase.hpp @@ -2,14 +2,15 @@ #define OPENPOSE_CORE_NMS_BASE_HPP #include +#include "common.hpp" namespace op { template - void nmsCpu(T* targetPtr, int* kernelPtr, const T* const sourcePtr, const T threshold, const std::array& targetSize, const std::array& sourceSize); + OP_API void nmsCpu(T* targetPtr, int* kernelPtr, const T* const sourcePtr, const T threshold, const std::array& targetSize, const std::array& sourceSize); template - void nmsGpu(T* targetPtr, int* kernelPtr, const T* const sourcePtr, const T threshold, const std::array& targetSize, const std::array& sourceSize); + OP_API void nmsGpu(T* targetPtr, int* kernelPtr, const T* const sourcePtr, const T threshold, const std::array& targetSize, const std::array& sourceSize); } #endif // OPENPOSE_CORE_NMS_BASE_HPP diff --git a/include/openpose/core/nmsCaffe.hpp b/include/openpose/core/nmsCaffe.hpp index 80bebe0ab..de0bad202 100644 --- a/include/openpose/core/nmsCaffe.hpp +++ b/include/openpose/core/nmsCaffe.hpp @@ -3,14 +3,15 @@ #define OPENPOSE_CORE_NMS_CAFFE_HPP #include -#include "caffe/blob.hpp" +#include +#include "common.hpp" namespace op { // It mostly follows the Caffe::layer implementation, so Caffe users can easily use it. However, in order to keep the compatibility with any generic Caffe version, // we keep this 'layer' inside our library rather than in the Caffe code. template - class NmsCaffe + class OP_API NmsCaffe { public: explicit NmsCaffe(); diff --git a/include/openpose/core/opOutputToCvMat.hpp b/include/openpose/core/opOutputToCvMat.hpp index b3e60d624..461e074ec 100644 --- a/include/openpose/core/opOutputToCvMat.hpp +++ b/include/openpose/core/opOutputToCvMat.hpp @@ -2,12 +2,11 @@ #define OPENPOSE_CORE_OP_OUTPUT_TO_CV_MAT_HPP #include // cv::Mat -#include "array.hpp" -#include "point.hpp" +#include "common.hpp" namespace op { - class OpOutputToCvMat + class OP_API OpOutputToCvMat { public: explicit OpOutputToCvMat(const Point& outputResolution); diff --git a/include/openpose/core/renderer.hpp b/include/openpose/core/renderer.hpp index 518b6910b..fe832a9fa 100644 --- a/include/openpose/core/renderer.hpp +++ b/include/openpose/core/renderer.hpp @@ -4,11 +4,11 @@ #include #include #include // std::shared_ptr -#include +#include "common.hpp" namespace op { - class Renderer + class OP_API Renderer { public: explicit Renderer(const unsigned long long volume, const float alphaKeypoint, const float alphaHeatMap, diff --git a/include/openpose/core/resizeAndMergeBase.hpp b/include/openpose/core/resizeAndMergeBase.hpp index f4cd03af6..f49a7475a 100644 --- a/include/openpose/core/resizeAndMergeBase.hpp +++ b/include/openpose/core/resizeAndMergeBase.hpp @@ -3,16 +3,17 @@ #include #include +#include "common.hpp" namespace op { template - void resizeAndMergeCpu(T* targetPtr, const T* const sourcePtr, const std::array& targetSize, const std::array& sourceSize, - const std::vector& scaleRatios = {1}); + OP_API void resizeAndMergeCpu(T* targetPtr, const T* const sourcePtr, const std::array& targetSize, const std::array& sourceSize, + const std::vector& scaleRatios = {1}); template - void resizeAndMergeGpu(T* targetPtr, const T* const sourcePtr, const std::array& targetSize, const std::array& sourceSize, - const std::vector& scaleRatios = {1}); + OP_API void resizeAndMergeGpu(T* targetPtr, const T* const sourcePtr, const std::array& targetSize, const std::array& sourceSize, + const std::vector& scaleRatios = {1}); } #endif // OPENPOSE_CORE_RESIZE_AND_MERGE_BASE_HPP diff --git a/include/openpose/core/resizeAndMergeCaffe.hpp b/include/openpose/core/resizeAndMergeCaffe.hpp index a2f253f72..896bec364 100644 --- a/include/openpose/core/resizeAndMergeCaffe.hpp +++ b/include/openpose/core/resizeAndMergeCaffe.hpp @@ -5,7 +5,7 @@ #include #include #include -#include +#include "common.hpp" namespace op { @@ -13,7 +13,7 @@ namespace op // compatibility with any generic Caffe version, // we keep this 'layer' inside our library rather than in the Caffe code. template - class ResizeAndMergeCaffe + class OP_API ResizeAndMergeCaffe { public: explicit ResizeAndMergeCaffe(); diff --git a/include/openpose/core/wCvMatToOpInput.hpp b/include/openpose/core/wCvMatToOpInput.hpp index 5ad46c5db..e9bed85ba 100644 --- a/include/openpose/core/wCvMatToOpInput.hpp +++ b/include/openpose/core/wCvMatToOpInput.hpp @@ -30,7 +30,7 @@ namespace op // Implementation #include -#include +#include #include #include #include diff --git a/include/openpose/core/wCvMatToOpOutput.hpp b/include/openpose/core/wCvMatToOpOutput.hpp index 4caea653e..97d7aa547 100644 --- a/include/openpose/core/wCvMatToOpOutput.hpp +++ b/include/openpose/core/wCvMatToOpOutput.hpp @@ -30,7 +30,7 @@ namespace op // Implementation #include -#include +#include #include #include #include diff --git a/include/openpose/core/wKeypointScaler.hpp b/include/openpose/core/wKeypointScaler.hpp index ad7fd7064..ceaeb3217 100644 --- a/include/openpose/core/wKeypointScaler.hpp +++ b/include/openpose/core/wKeypointScaler.hpp @@ -27,7 +27,7 @@ namespace op // Implementation #include -#include +#include #include #include namespace op diff --git a/include/openpose/core/wOpOutputToCvMat.hpp b/include/openpose/core/wOpOutputToCvMat.hpp index c8ea1ccd3..256a4f95a 100644 --- a/include/openpose/core/wOpOutputToCvMat.hpp +++ b/include/openpose/core/wOpOutputToCvMat.hpp @@ -31,7 +31,7 @@ namespace op // Implementation #include #include -#include +#include #include #include namespace op diff --git a/include/openpose/face/faceDetector.hpp b/include/openpose/face/faceDetector.hpp index 77debf536..bb9cbcfa6 100644 --- a/include/openpose/face/faceDetector.hpp +++ b/include/openpose/face/faceDetector.hpp @@ -5,11 +5,11 @@ #include #include #include -#include +#include namespace op { - class FaceDetector + class OP_API FaceDetector { public: explicit FaceDetector(const PoseModel poseModel); diff --git a/include/openpose/face/faceExtractor.hpp b/include/openpose/face/faceExtractor.hpp index 9830ed2d0..6e154c305 100644 --- a/include/openpose/face/faceExtractor.hpp +++ b/include/openpose/face/faceExtractor.hpp @@ -11,10 +11,11 @@ #include #include #include +#include namespace op { - class FaceExtractor + class OP_API FaceExtractor { public: explicit FaceExtractor(const Point& netInputSize, const Point& netOutputSize, const std::string& modelFolder, const int gpuId); diff --git a/include/openpose/face/faceRenderer.hpp b/include/openpose/face/faceRenderer.hpp index 4af16257c..0b9e9fcdb 100644 --- a/include/openpose/face/faceRenderer.hpp +++ b/include/openpose/face/faceRenderer.hpp @@ -6,11 +6,12 @@ #include #include #include +#include #include "faceParameters.hpp" namespace op { - class FaceRenderer : public Renderer + class OP_API FaceRenderer : public Renderer { public: FaceRenderer(const Point& frameSize, const float renderThreshold, diff --git a/include/openpose/face/renderFace.hpp b/include/openpose/face/renderFace.hpp index a490b6393..6d0394ee8 100644 --- a/include/openpose/face/renderFace.hpp +++ b/include/openpose/face/renderFace.hpp @@ -3,14 +3,15 @@ #include #include +#include #include "faceParameters.hpp" namespace op { - void renderFaceKeypointsCpu(Array& frameArray, const Array& faceKeypoints, const float renderThreshold); + OP_API void renderFaceKeypointsCpu(Array& frameArray, const Array& faceKeypoints, const float renderThreshold); - void renderFaceKeypointsGpu(float* framePtr, const Point& frameSize, const float* const facePtr, const int numberPeople, - const float renderThreshold, const float alphaColorToAdd = FACE_DEFAULT_ALPHA_KEYPOINT); + OP_API void renderFaceKeypointsGpu(float* framePtr, const Point& frameSize, const float* const facePtr, const int numberPeople, + const float renderThreshold, const float alphaColorToAdd = FACE_DEFAULT_ALPHA_KEYPOINT); } #endif // OPENPOSE_FACE_RENDER_FACE_HPP diff --git a/include/openpose/face/wFaceDetector.hpp b/include/openpose/face/wFaceDetector.hpp index abdb329ca..c8e103012 100644 --- a/include/openpose/face/wFaceDetector.hpp +++ b/include/openpose/face/wFaceDetector.hpp @@ -30,7 +30,7 @@ namespace op // Implementation #include -#include +#include #include #include namespace op diff --git a/include/openpose/face/wFaceExtractor.hpp b/include/openpose/face/wFaceExtractor.hpp index c1d987d74..a227e49b2 100644 --- a/include/openpose/face/wFaceExtractor.hpp +++ b/include/openpose/face/wFaceExtractor.hpp @@ -30,7 +30,7 @@ namespace op // Implementation #include -#include +#include #include #include namespace op diff --git a/include/openpose/face/wFaceRenderer.hpp b/include/openpose/face/wFaceRenderer.hpp index fac2b91c3..1458c5dc1 100644 --- a/include/openpose/face/wFaceRenderer.hpp +++ b/include/openpose/face/wFaceRenderer.hpp @@ -30,7 +30,7 @@ namespace op // Implementation #include -#include +#include #include #include namespace op diff --git a/include/openpose/filestream/cocoJsonSaver.hpp b/include/openpose/filestream/cocoJsonSaver.hpp index b97d0d64e..a4595cb24 100644 --- a/include/openpose/filestream/cocoJsonSaver.hpp +++ b/include/openpose/filestream/cocoJsonSaver.hpp @@ -3,7 +3,7 @@ #include #include -#include +#include #include "jsonOfstream.hpp" namespace op @@ -11,7 +11,7 @@ namespace op /** * The CocoJsonSaver class creates a COCO validation json file with details about the processed images. It inherits from Recorder. */ - class CocoJsonSaver + class OP_API CocoJsonSaver { public: /** diff --git a/include/openpose/filestream/fileSaver.hpp b/include/openpose/filestream/fileSaver.hpp index c6b093b9d..89f05b477 100644 --- a/include/openpose/filestream/fileSaver.hpp +++ b/include/openpose/filestream/fileSaver.hpp @@ -2,11 +2,12 @@ #define OPENPOSE_FILESTREAM_DATA_SAVER_HPP #include +#include #include namespace op { - class FileSaver + class OP_API FileSaver { protected: explicit FileSaver(const std::string& directoryPath); diff --git a/include/openpose/filestream/fileStream.hpp b/include/openpose/filestream/fileStream.hpp index bca24cbe8..d3305c8b9 100644 --- a/include/openpose/filestream/fileStream.hpp +++ b/include/openpose/filestream/fileStream.hpp @@ -8,33 +8,34 @@ #include // CV_LOAD_IMAGE_ANYDEPTH, CV_IMWRITE_PNG_COMPRESSION #include #include +#include #include "enumClasses.hpp" namespace op { - DataFormat stringToDataFormat(const std::string& dataFormat); + OP_API DataFormat stringToDataFormat(const std::string& dataFormat); // Save/load json, xml, yaml, yml - void saveData(const std::vector& cvMats, const std::vector& cvMatNames, const std::string& fileNameNoExtension, const DataFormat format); + OP_API void saveData(const std::vector& cvMats, const std::vector& cvMatNames, const std::string& fileNameNoExtension, const DataFormat format); - void saveData(const cv::Mat& cvMat, const std::string cvMatName, const std::string& fileNameNoExtension, const DataFormat format); + OP_API void saveData(const cv::Mat& cvMat, const std::string cvMatName, const std::string& fileNameNoExtension, const DataFormat format); - std::vector loadData(const std::vector& cvMatNames, const std::string& fileNameNoExtension, const DataFormat format); + OP_API std::vector loadData(const std::vector& cvMatNames, const std::string& fileNameNoExtension, const DataFormat format); - cv::Mat loadData(const std::string& cvMatName, const std::string& fileNameNoExtension, const DataFormat format); + OP_API cv::Mat loadData(const std::string& cvMatName, const std::string& fileNameNoExtension, const DataFormat format); // Json - Saving as *.json not available in OpenCV verions < 3.0, this function is a quick fix - void saveKeypointsJson(const Array& keypoints, const std::string& keypointName, const std::string& fileName, const bool humanReadable); + OP_API void saveKeypointsJson(const Array& keypoints, const std::string& keypointName, const std::string& fileName, const bool humanReadable); // It will save a bunch of Array elements - void saveKeypointsJson(const std::vector, std::string>>& keypointVector, const std::string& fileName, const bool humanReadable); + OP_API void saveKeypointsJson(const std::vector, std::string>>& keypointVector, const std::string& fileName, const bool humanReadable); // Save/load image - void saveImage(const cv::Mat& cvMat, const std::string& fullFilePath, const std::vector& openCvCompressionParams = {CV_IMWRITE_JPEG_QUALITY, 100, CV_IMWRITE_PNG_COMPRESSION, 9}); + OP_API void saveImage(const cv::Mat& cvMat, const std::string& fullFilePath, const std::vector& openCvCompressionParams = {CV_IMWRITE_JPEG_QUALITY, 100, CV_IMWRITE_PNG_COMPRESSION, 9}); - cv::Mat loadImage(const std::string& fullFilePath, const int openCvFlags = CV_LOAD_IMAGE_ANYDEPTH); + OP_API cv::Mat loadImage(const std::string& fullFilePath, const int openCvFlags = CV_LOAD_IMAGE_ANYDEPTH); - std::vector, 2>> loadHandDetectorTxt(const std::string& txtFilePath); + OP_API std::vector, 2>> loadHandDetectorTxt(const std::string& txtFilePath); } #endif // OPENPOSE_FILESTREAM_FILE_STREAM_HPP diff --git a/include/openpose/filestream/heatMapSaver.hpp b/include/openpose/filestream/heatMapSaver.hpp index 8a01a76c5..729ed6ba5 100644 --- a/include/openpose/filestream/heatMapSaver.hpp +++ b/include/openpose/filestream/heatMapSaver.hpp @@ -3,11 +3,12 @@ #include #include +#include #include "fileSaver.hpp" namespace op { - class HeatMapSaver : public FileSaver + class OP_API HeatMapSaver : public FileSaver { public: HeatMapSaver(const std::string& directoryPath, const std::string& imageFormat); diff --git a/include/openpose/filestream/imageSaver.hpp b/include/openpose/filestream/imageSaver.hpp index da979c72a..bd3d234f0 100644 --- a/include/openpose/filestream/imageSaver.hpp +++ b/include/openpose/filestream/imageSaver.hpp @@ -4,11 +4,12 @@ #include #include #include // cv::Mat +#include #include "fileSaver.hpp" namespace op { - class ImageSaver : public FileSaver + class OP_API ImageSaver : public FileSaver { public: ImageSaver(const std::string& directoryPath, const std::string& imageFormat); diff --git a/include/openpose/filestream/jsonOfstream.hpp b/include/openpose/filestream/jsonOfstream.hpp index e0ffdf338..98e51b7fd 100644 --- a/include/openpose/filestream/jsonOfstream.hpp +++ b/include/openpose/filestream/jsonOfstream.hpp @@ -3,11 +3,11 @@ #include // std::ofstream #include -#include +#include namespace op { - class JsonOfstream + class OP_API JsonOfstream { public: explicit JsonOfstream(const std::string& filePath, const bool humanReadable = true); diff --git a/include/openpose/filestream/keypointJsonSaver.hpp b/include/openpose/filestream/keypointJsonSaver.hpp index c1d697c07..e56da8379 100644 --- a/include/openpose/filestream/keypointJsonSaver.hpp +++ b/include/openpose/filestream/keypointJsonSaver.hpp @@ -4,11 +4,12 @@ #include #include #include +#include #include "fileSaver.hpp" namespace op { - class KeypointJsonSaver : public FileSaver + class OP_API KeypointJsonSaver : public FileSaver { public: KeypointJsonSaver(const std::string& directoryPath); diff --git a/include/openpose/filestream/keypointSaver.hpp b/include/openpose/filestream/keypointSaver.hpp index 2b9bf89d7..11cb594d0 100644 --- a/include/openpose/filestream/keypointSaver.hpp +++ b/include/openpose/filestream/keypointSaver.hpp @@ -2,12 +2,13 @@ #define OPENPOSE_FILESTREAM_KEYPOINT_SAVER_HPP #include +#include #include "enumClasses.hpp" #include "fileSaver.hpp" namespace op { - class KeypointSaver : public FileSaver + class OP_API KeypointSaver : public FileSaver { public: KeypointSaver(const std::string& directoryPath, const DataFormat format); diff --git a/include/openpose/filestream/videoSaver.hpp b/include/openpose/filestream/videoSaver.hpp index 4bb57cee9..592cdd3ea 100644 --- a/include/openpose/filestream/videoSaver.hpp +++ b/include/openpose/filestream/videoSaver.hpp @@ -4,11 +4,11 @@ #include #include // cv::Mat #include // cv::VideoWriter -#include +#include namespace op { - class VideoSaver + class OP_API VideoSaver { public: VideoSaver(const std::string& videoSaverPath, const int cvFourcc, const double fps, const Point& cvSize); diff --git a/include/openpose/filestream/wCocoJsonSaver.hpp b/include/openpose/filestream/wCocoJsonSaver.hpp index 59d4b7fa4..5de891bb1 100644 --- a/include/openpose/filestream/wCocoJsonSaver.hpp +++ b/include/openpose/filestream/wCocoJsonSaver.hpp @@ -30,7 +30,7 @@ namespace op // Implementation #include -#include +#include #include #include namespace op diff --git a/include/openpose/filestream/wFaceSaver.hpp b/include/openpose/filestream/wFaceSaver.hpp index 681626b7b..56607ea82 100644 --- a/include/openpose/filestream/wFaceSaver.hpp +++ b/include/openpose/filestream/wFaceSaver.hpp @@ -32,7 +32,7 @@ namespace op // Implementation #include -#include +#include #include #include namespace op diff --git a/include/openpose/filestream/wHandSaver.hpp b/include/openpose/filestream/wHandSaver.hpp index 1bf32742c..5b50f5a17 100644 --- a/include/openpose/filestream/wHandSaver.hpp +++ b/include/openpose/filestream/wHandSaver.hpp @@ -32,7 +32,7 @@ namespace op // Implementation #include -#include +#include #include #include namespace op diff --git a/include/openpose/filestream/wHeatMapSaver.hpp b/include/openpose/filestream/wHeatMapSaver.hpp index f932dd30f..77473aad9 100644 --- a/include/openpose/filestream/wHeatMapSaver.hpp +++ b/include/openpose/filestream/wHeatMapSaver.hpp @@ -32,7 +32,7 @@ namespace op // Implementation #include #include -#include +#include #include #include namespace op diff --git a/include/openpose/filestream/wImageSaver.hpp b/include/openpose/filestream/wImageSaver.hpp index 74fe792f3..57cd9b5cf 100644 --- a/include/openpose/filestream/wImageSaver.hpp +++ b/include/openpose/filestream/wImageSaver.hpp @@ -32,7 +32,7 @@ namespace op // Implementation #include #include -#include +#include #include #include namespace op diff --git a/include/openpose/filestream/wKeypointJsonSaver.hpp b/include/openpose/filestream/wKeypointJsonSaver.hpp index ed20626f4..4ddbccd1a 100644 --- a/include/openpose/filestream/wKeypointJsonSaver.hpp +++ b/include/openpose/filestream/wKeypointJsonSaver.hpp @@ -31,7 +31,7 @@ namespace op // Implementation #include -#include +#include #include #include namespace op diff --git a/include/openpose/filestream/wPoseSaver.hpp b/include/openpose/filestream/wPoseSaver.hpp index e7d318ee1..a4117c5a5 100644 --- a/include/openpose/filestream/wPoseSaver.hpp +++ b/include/openpose/filestream/wPoseSaver.hpp @@ -32,7 +32,7 @@ namespace op // Implementation #include -#include +#include #include #include namespace op diff --git a/include/openpose/filestream/wVideoSaver.hpp b/include/openpose/filestream/wVideoSaver.hpp index d8abfa599..c06eeee43 100644 --- a/include/openpose/filestream/wVideoSaver.hpp +++ b/include/openpose/filestream/wVideoSaver.hpp @@ -32,7 +32,7 @@ namespace op // Implementation #include -#include +#include #include #include namespace op diff --git a/include/openpose/gui/frameDisplayer.hpp b/include/openpose/gui/frameDisplayer.hpp index 58e580878..31ec9bc70 100644 --- a/include/openpose/gui/frameDisplayer.hpp +++ b/include/openpose/gui/frameDisplayer.hpp @@ -4,6 +4,7 @@ #include #include // cv::Mat #include +#include #include "enumClasses.hpp" namespace op @@ -11,7 +12,7 @@ namespace op /** * The FrameDisplayer class is the one presenting visually the processed frame to the user. */ - class FrameDisplayer + class OP_API FrameDisplayer { public: /** diff --git a/include/openpose/gui/gui.hpp b/include/openpose/gui/gui.hpp index e550cda96..c89a76651 100644 --- a/include/openpose/gui/gui.hpp +++ b/include/openpose/gui/gui.hpp @@ -7,12 +7,13 @@ #include #include #include +#include #include "enumClasses.hpp" #include "frameDisplayer.hpp" namespace op { - class Gui + class OP_API Gui { public: Gui(const bool fullScreen, const Point& outputSize, const std::shared_ptr>& isRunningSharedPtr, diff --git a/include/openpose/gui/guiInfoAdder.hpp b/include/openpose/gui/guiInfoAdder.hpp index 71429c0f8..e6ad5309c 100644 --- a/include/openpose/gui/guiInfoAdder.hpp +++ b/include/openpose/gui/guiInfoAdder.hpp @@ -5,10 +5,11 @@ #include // cv::Mat #include #include +#include namespace op { - class GuiInfoAdder + class OP_API GuiInfoAdder { public: GuiInfoAdder(const Point& outputSize, const int numberGpus, const bool guiEnabled = false); diff --git a/include/openpose/gui/wGui.hpp b/include/openpose/gui/wGui.hpp index cb4af65b0..a33b0f9c5 100644 --- a/include/openpose/gui/wGui.hpp +++ b/include/openpose/gui/wGui.hpp @@ -31,7 +31,7 @@ namespace op // Implementation #include -#include +#include #include #include namespace op diff --git a/include/openpose/gui/wGuiInfoAdder.hpp b/include/openpose/gui/wGuiInfoAdder.hpp index 7d5721d49..763c0a775 100644 --- a/include/openpose/gui/wGuiInfoAdder.hpp +++ b/include/openpose/gui/wGuiInfoAdder.hpp @@ -29,7 +29,7 @@ namespace op // Implementation #include -#include +#include #include #include namespace op diff --git a/include/openpose/hand/handDetector.hpp b/include/openpose/hand/handDetector.hpp index 40a71aba7..bb2d16cdc 100644 --- a/include/openpose/hand/handDetector.hpp +++ b/include/openpose/hand/handDetector.hpp @@ -8,13 +8,13 @@ #include #include #include -#include +#include namespace op { // Note: This class is thread-safe, so several GPUs can be running hands and using `updateTracker`, and updateTracker will keep the latest known // tracking - class HandDetector + class OP_API HandDetector { public: explicit HandDetector(const PoseModel poseModel); diff --git a/include/openpose/hand/handDetectorFromTxt.hpp b/include/openpose/hand/handDetectorFromTxt.hpp index 9ddb38ed5..821d1fcb8 100644 --- a/include/openpose/hand/handDetectorFromTxt.hpp +++ b/include/openpose/hand/handDetectorFromTxt.hpp @@ -6,11 +6,11 @@ #include #include #include -#include +#include namespace op { - class HandDetectorFromTxt + class OP_API HandDetectorFromTxt { public: explicit HandDetectorFromTxt(const std::string& txtDirectoryPath); diff --git a/include/openpose/hand/handExtractor.hpp b/include/openpose/hand/handExtractor.hpp index 4593fac7c..0fb61f553 100644 --- a/include/openpose/hand/handExtractor.hpp +++ b/include/openpose/hand/handExtractor.hpp @@ -12,11 +12,11 @@ #include #include #include -#include +#include namespace op { - class HandExtractor + class OP_API HandExtractor { public: explicit HandExtractor(const Point& netInputSize, const Point& netOutputSize, const std::string& modelFolder, const int gpuId, diff --git a/include/openpose/hand/handRenderer.hpp b/include/openpose/hand/handRenderer.hpp index ae0bae214..482a0c455 100644 --- a/include/openpose/hand/handRenderer.hpp +++ b/include/openpose/hand/handRenderer.hpp @@ -7,11 +7,12 @@ #include #include #include +#include #include "handParameters.hpp" namespace op { - class HandRenderer : public Renderer + class OP_API HandRenderer : public Renderer { public: HandRenderer(const Point& frameSize, const float renderThreshold, diff --git a/include/openpose/hand/renderHand.hpp b/include/openpose/hand/renderHand.hpp index c3c2eb949..856cef8b1 100644 --- a/include/openpose/hand/renderHand.hpp +++ b/include/openpose/hand/renderHand.hpp @@ -4,16 +4,17 @@ #include #include #include +#include #include "handParameters.hpp" namespace op { - void renderHandKeypointsCpu(Array& frameArray, const std::array, 2>& handKeypoints, - const float renderThreshold); + OP_API void renderHandKeypointsCpu(Array& frameArray, const std::array, 2>& handKeypoints, + const float renderThreshold); - void renderHandKeypointsGpu(float* framePtr, const Point& frameSize, const float* const handsPtr, - const int numberHands, const float renderThreshold, - const float alphaColorToAdd = HAND_DEFAULT_ALPHA_KEYPOINT); + OP_API void renderHandKeypointsGpu(float* framePtr, const Point& frameSize, const float* const handsPtr, + const int numberHands, const float renderThreshold, + const float alphaColorToAdd = HAND_DEFAULT_ALPHA_KEYPOINT); } #endif // OPENPOSE_HAND_GPU_HAND_RENDER_HPP diff --git a/include/openpose/hand/wHandDetector.hpp b/include/openpose/hand/wHandDetector.hpp index c8f9a9d07..6df072c3f 100644 --- a/include/openpose/hand/wHandDetector.hpp +++ b/include/openpose/hand/wHandDetector.hpp @@ -30,7 +30,7 @@ namespace op // Implementation #include -#include +#include #include #include namespace op diff --git a/include/openpose/hand/wHandDetectorFromTxt.hpp b/include/openpose/hand/wHandDetectorFromTxt.hpp index 7221f63d9..7792d1af9 100644 --- a/include/openpose/hand/wHandDetectorFromTxt.hpp +++ b/include/openpose/hand/wHandDetectorFromTxt.hpp @@ -30,7 +30,7 @@ namespace op // Implementation #include -#include +#include #include #include namespace op diff --git a/include/openpose/hand/wHandDetectorTracking.hpp b/include/openpose/hand/wHandDetectorTracking.hpp index fcd138423..c829a48e5 100644 --- a/include/openpose/hand/wHandDetectorTracking.hpp +++ b/include/openpose/hand/wHandDetectorTracking.hpp @@ -30,7 +30,7 @@ namespace op // Implementation #include -#include +#include #include #include namespace op diff --git a/include/openpose/hand/wHandDetectorUpdate.hpp b/include/openpose/hand/wHandDetectorUpdate.hpp index 1fd4d918d..c73c958e1 100644 --- a/include/openpose/hand/wHandDetectorUpdate.hpp +++ b/include/openpose/hand/wHandDetectorUpdate.hpp @@ -30,7 +30,7 @@ namespace op // Implementation #include -#include +#include #include #include namespace op diff --git a/include/openpose/hand/wHandExtractor.hpp b/include/openpose/hand/wHandExtractor.hpp index 60a5d46f8..349df3c7e 100644 --- a/include/openpose/hand/wHandExtractor.hpp +++ b/include/openpose/hand/wHandExtractor.hpp @@ -30,7 +30,7 @@ namespace op // Implementation #include -#include +#include #include #include namespace op diff --git a/include/openpose/hand/wHandRenderer.hpp b/include/openpose/hand/wHandRenderer.hpp index 45d1500ca..49eab93ee 100644 --- a/include/openpose/hand/wHandRenderer.hpp +++ b/include/openpose/hand/wHandRenderer.hpp @@ -30,7 +30,7 @@ namespace op // Implementation #include -#include +#include #include #include namespace op diff --git a/include/openpose/pose/bodyPartConnectorBase.hpp b/include/openpose/pose/bodyPartConnectorBase.hpp index a816a6e03..bf5574ba8 100644 --- a/include/openpose/pose/bodyPartConnectorBase.hpp +++ b/include/openpose/pose/bodyPartConnectorBase.hpp @@ -3,17 +3,18 @@ #include #include +#include #include "enumClasses.hpp" namespace op { template - void connectBodyPartsCpu(Array& poseKeypoints, const T* const heatMapPtr, const T* const peaksPtr, const PoseModel poseModel, const Point& heatMapSize, const int maxPeaks, - const int interMinAboveThreshold, const T interThreshold, const int minSubsetCnt, const T minSubsetScore, const T scaleFactor = 1.f); + OP_API void connectBodyPartsCpu(Array& poseKeypoints, const T* const heatMapPtr, const T* const peaksPtr, const PoseModel poseModel, const Point& heatMapSize, const int maxPeaks, + const int interMinAboveThreshold, const T interThreshold, const int minSubsetCnt, const T minSubsetScore, const T scaleFactor = 1.f); template - void connectBodyPartsGpu(Array& poseKeypoints, T* posePtr, const T* const heatMapPtr, const T* const peaksPtr, const PoseModel poseModel, const Point& heatMapSize, - const int maxPeaks, const int interMinAboveThreshold, const T interThreshold, const int minSubsetCnt, const T minSubsetScore, const T scaleFactor = 1.f); + OP_API void connectBodyPartsGpu(Array& poseKeypoints, T* posePtr, const T* const heatMapPtr, const T* const peaksPtr, const PoseModel poseModel, const Point& heatMapSize, + const int maxPeaks, const int interMinAboveThreshold, const T interThreshold, const int minSubsetCnt, const T minSubsetScore, const T scaleFactor = 1.f); } #endif // OPENPOSE_POSE_BODY_PARTS_CONNECTOR_HPP diff --git a/include/openpose/pose/bodyPartConnectorCaffe.hpp b/include/openpose/pose/bodyPartConnectorCaffe.hpp index 31d515a19..eee8e65ff 100644 --- a/include/openpose/pose/bodyPartConnectorCaffe.hpp +++ b/include/openpose/pose/bodyPartConnectorCaffe.hpp @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include "enumClasses.hpp" namespace op @@ -14,7 +14,7 @@ namespace op // It mostly follows the Caffe::layer implementation, so Caffe users can easily use it. However, in order to keep the compatibility with any generic Caffe version, // we keep this 'layer' inside our library rather than in the Caffe code. template - class BodyPartConnectorCaffe + class OP_API BodyPartConnectorCaffe { public: explicit BodyPartConnectorCaffe(); diff --git a/include/openpose/pose/poseExtractor.hpp b/include/openpose/pose/poseExtractor.hpp index a7a430751..dd99b4956 100644 --- a/include/openpose/pose/poseExtractor.hpp +++ b/include/openpose/pose/poseExtractor.hpp @@ -7,12 +7,12 @@ #include #include #include -#include +#include #include "poseParameters.hpp" namespace op { - class PoseExtractor + class OP_API PoseExtractor { public: PoseExtractor(const Point& netOutputSize, const Point& outputSize, const PoseModel poseModel, const std::vector& heatMapTypes = {}, diff --git a/include/openpose/pose/poseExtractorCaffe.hpp b/include/openpose/pose/poseExtractorCaffe.hpp index 57b1e37c1..4a6e76cad 100644 --- a/include/openpose/pose/poseExtractorCaffe.hpp +++ b/include/openpose/pose/poseExtractorCaffe.hpp @@ -9,14 +9,14 @@ #include #include #include -#include +#include #include "bodyPartConnectorCaffe.hpp" #include "enumClasses.hpp" #include "poseExtractor.hpp" namespace op { - class PoseExtractorCaffe : public PoseExtractor + class OP_API PoseExtractorCaffe : public PoseExtractor { public: PoseExtractorCaffe(const Point& netInputSize, const Point& netOutputSize, const Point& outputSize, const int scaleNumber, diff --git a/include/openpose/pose/poseParameters.hpp b/include/openpose/pose/poseParameters.hpp index 179ea7246..f2a270eea 100644 --- a/include/openpose/pose/poseParameters.hpp +++ b/include/openpose/pose/poseParameters.hpp @@ -4,6 +4,7 @@ #include #include #include +#include #include "enumClasses.hpp" namespace op @@ -212,8 +213,8 @@ namespace op const auto POSE_DEFAULT_ALPHA_HEAT_MAP = 0.7f; // Auxiliary functions - unsigned int poseBodyPartMapStringToKey(const PoseModel poseModel, const std::string& string); - unsigned int poseBodyPartMapStringToKey(const PoseModel poseModel, const std::vector& strings); + OP_API unsigned int poseBodyPartMapStringToKey(const PoseModel poseModel, const std::string& string); + OP_API unsigned int poseBodyPartMapStringToKey(const PoseModel poseModel, const std::vector& strings); } #endif // OPENPOSE_POSE_POSE_PARAMETERS_HPP diff --git a/include/openpose/pose/poseRenderer.hpp b/include/openpose/pose/poseRenderer.hpp index cfc7c85b1..cb5caa234 100644 --- a/include/openpose/pose/poseRenderer.hpp +++ b/include/openpose/pose/poseRenderer.hpp @@ -6,13 +6,13 @@ #include #include #include -#include +#include #include "poseExtractor.hpp" #include "poseParameters.hpp" namespace op { - class PoseRenderer : public Renderer + class OP_API PoseRenderer : public Renderer { public: PoseRenderer(const Point& heatMapsSize, const Point& outputSize, const PoseModel poseModel, diff --git a/include/openpose/pose/renderPose.hpp b/include/openpose/pose/renderPose.hpp index b9e7ad776..c456f34d4 100644 --- a/include/openpose/pose/renderPose.hpp +++ b/include/openpose/pose/renderPose.hpp @@ -9,29 +9,29 @@ namespace op { - void renderPoseKeypointsCpu(Array& frameArray, const Array& poseKeypoints, const PoseModel poseModel, - const float renderThreshold, const bool blendOriginalFrame = true); + OP_API void renderPoseKeypointsCpu(Array& frameArray, const Array& poseKeypoints, const PoseModel poseModel, + const float renderThreshold, const bool blendOriginalFrame = true); - void renderPoseKeypointsGpu(float* framePtr, const PoseModel poseModel, const int numberPeople, - const Point& frameSize, const float* const posePtr, const float renderThreshold, - const bool googlyEyes = false, const bool blendOriginalFrame = true, - const float alphaBlending = POSE_DEFAULT_ALPHA_KEYPOINT); + OP_API void renderPoseKeypointsGpu(float* framePtr, const PoseModel poseModel, const int numberPeople, + const Point& 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 PoseModel poseModel, const Point& frameSize, - const float* const heatmap, const Point& heatmapSize, const float scaleToKeepRatio, - const int part, const float alphaBlending = POSE_DEFAULT_ALPHA_HEAT_MAP); + OP_API void renderPoseHeatMapGpu(float* frame, const PoseModel poseModel, const Point& frameSize, + const float* const heatmap, const Point& heatmapSize, const float scaleToKeepRatio, + const int part, const float alphaBlending = POSE_DEFAULT_ALPHA_HEAT_MAP); - void renderPoseHeatMapsGpu(float* frame, const PoseModel poseModel, const Point& frameSize, - const float* const heatmap, const Point& heatmapSize, const float scaleToKeepRatio, - const float alphaBlending = POSE_DEFAULT_ALPHA_HEAT_MAP); + OP_API void renderPoseHeatMapsGpu(float* frame, const PoseModel poseModel, const Point& frameSize, + const float* const heatmap, const Point& heatmapSize, const float scaleToKeepRatio, + const float alphaBlending = POSE_DEFAULT_ALPHA_HEAT_MAP); - void renderPosePAFGpu(float* framePtr, const PoseModel poseModel, const Point& frameSize, - const float* const heatmapPtr, const Point& heatmapSize, const float scaleToKeepRatio, - const int part, const float alphaBlending = POSE_DEFAULT_ALPHA_HEAT_MAP); + OP_API void renderPosePAFGpu(float* framePtr, const PoseModel poseModel, const Point& frameSize, + const float* const heatmapPtr, const Point& heatmapSize, const float scaleToKeepRatio, + const int part, const float alphaBlending = POSE_DEFAULT_ALPHA_HEAT_MAP); - void renderPosePAFsGpu(float* framePtr, const PoseModel poseModel, const Point& frameSize, - const float* const heatmapPtr, const Point& heatmapSize, const float scaleToKeepRatio, - const float alphaBlending = POSE_DEFAULT_ALPHA_HEAT_MAP); + OP_API void renderPosePAFsGpu(float* framePtr, const PoseModel poseModel, const Point& frameSize, + const float* const heatmapPtr, const Point& heatmapSize, const float scaleToKeepRatio, + const float alphaBlending = POSE_DEFAULT_ALPHA_HEAT_MAP); } #endif // OPENPOSE_POSE_RENDER_POSE_HPP diff --git a/include/openpose/pose/wPoseExtractor.hpp b/include/openpose/pose/wPoseExtractor.hpp index dfab2a9e5..c7b119960 100644 --- a/include/openpose/pose/wPoseExtractor.hpp +++ b/include/openpose/pose/wPoseExtractor.hpp @@ -30,7 +30,7 @@ namespace op // Implementation #include -#include +#include #include #include namespace op diff --git a/include/openpose/pose/wPoseRenderer.hpp b/include/openpose/pose/wPoseRenderer.hpp index 1c2457187..c8efcc9e9 100644 --- a/include/openpose/pose/wPoseRenderer.hpp +++ b/include/openpose/pose/wPoseRenderer.hpp @@ -30,7 +30,7 @@ namespace op // Implementation #include -#include +#include #include #include namespace op diff --git a/include/openpose/producer/datumProducer.hpp b/include/openpose/producer/datumProducer.hpp index 43caf1aa6..05132967a 100644 --- a/include/openpose/producer/datumProducer.hpp +++ b/include/openpose/producer/datumProducer.hpp @@ -7,7 +7,7 @@ #include #include #include -#include +#include namespace op { @@ -38,7 +38,7 @@ namespace op -// Implemenetation +// Implementation #include "openpose/utilities/errorAndLog.hpp" #include "openpose/producer/datumProducer.hpp" namespace op diff --git a/include/openpose/producer/imageDirectoryReader.hpp b/include/openpose/producer/imageDirectoryReader.hpp index 457bf18c5..edde83288 100644 --- a/include/openpose/producer/imageDirectoryReader.hpp +++ b/include/openpose/producer/imageDirectoryReader.hpp @@ -4,6 +4,7 @@ #include #include #include +#include #include "producer.hpp" namespace op @@ -13,7 +14,7 @@ namespace op * cv::VideoCapture class, so it can be used quite similarly to the cv::VideoCapture class. Thus, * it is quite similar to VideoReader and WebcamReader. */ - class ImageDirectoryReader : public Producer + class OP_API ImageDirectoryReader : public Producer { public: /** diff --git a/include/openpose/producer/producer.hpp b/include/openpose/producer/producer.hpp index dad2e46fc..38b0fcd0d 100644 --- a/include/openpose/producer/producer.hpp +++ b/include/openpose/producer/producer.hpp @@ -5,7 +5,7 @@ #include #include // cv::Mat #include // capProperties of OpenCV -#include +#include #include "enumClasses.hpp" namespace op @@ -14,7 +14,7 @@ namespace op * 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). */ - class Producer + class OP_API Producer { public: /** diff --git a/include/openpose/producer/videoCaptureReader.hpp b/include/openpose/producer/videoCaptureReader.hpp index aecc0326f..44eee04e7 100644 --- a/include/openpose/producer/videoCaptureReader.hpp +++ b/include/openpose/producer/videoCaptureReader.hpp @@ -4,6 +4,7 @@ #include #include // cv::Mat #include // cv::VideoCapture +#include #include "producer.hpp" namespace op @@ -12,7 +13,7 @@ namespace op * VideoCaptureReader is an abstract class to extract frames from a cv::VideoCapture source (video file, * webcam stream, etc.). It has the basic and common functions of the cv::VideoCapture class (e.g. get, set, etc.). */ - class VideoCaptureReader : public Producer + class OP_API VideoCaptureReader : public Producer { public: /** diff --git a/include/openpose/producer/videoReader.hpp b/include/openpose/producer/videoReader.hpp index e70f38944..bf048fdd7 100644 --- a/include/openpose/producer/videoReader.hpp +++ b/include/openpose/producer/videoReader.hpp @@ -1,6 +1,7 @@ #ifndef OPENPOSE_PRODUCER_VIDEO_READER_HPP #define OPENPOSE_PRODUCER_VIDEO_READER_HPP +#include #include "videoCaptureReader.hpp" namespace op @@ -9,7 +10,7 @@ namespace op * VideoReader is a wrapper of the cv::VideoCapture class for video. It allows controlling a webcam (extracting frames, * setting resolution & fps, etc). */ - class VideoReader : public VideoCaptureReader + class OP_API VideoReader : public VideoCaptureReader { public: /** diff --git a/include/openpose/producer/wDatumProducer.hpp b/include/openpose/producer/wDatumProducer.hpp index 2b0e3490c..1bb709787 100644 --- a/include/openpose/producer/wDatumProducer.hpp +++ b/include/openpose/producer/wDatumProducer.hpp @@ -32,7 +32,7 @@ namespace op // Implementation #include #include -#include +#include #include #include namespace op diff --git a/include/openpose/producer/webcamReader.hpp b/include/openpose/producer/webcamReader.hpp index b6d6dd226..719cf8763 100644 --- a/include/openpose/producer/webcamReader.hpp +++ b/include/openpose/producer/webcamReader.hpp @@ -5,6 +5,7 @@ #include #include #include +#include #include "videoCaptureReader.hpp" namespace op @@ -13,7 +14,7 @@ namespace op * WebcamReader is a wrapper of the cv::VideoCapture class for webcam. It allows controlling a video (extracting * frames, setting resolution & fps, seeking to a particular frame, etc). */ - class WebcamReader : public VideoCaptureReader + class OP_API WebcamReader : public VideoCaptureReader { public: /** diff --git a/include/openpose/thread/priorityQueue.hpp b/include/openpose/thread/priorityQueue.hpp index e526ccd32..6fedd3340 100644 --- a/include/openpose/thread/priorityQueue.hpp +++ b/include/openpose/thread/priorityQueue.hpp @@ -2,7 +2,7 @@ #define OPENPOSE_THREAD_PRIORITY_QUEUE_HPP #include // std::priority_queue -#include +#include #include "queueBase.hpp" namespace op diff --git a/include/openpose/thread/queue.hpp b/include/openpose/thread/queue.hpp index 8d3ff9139..a645f44da 100644 --- a/include/openpose/thread/queue.hpp +++ b/include/openpose/thread/queue.hpp @@ -2,7 +2,7 @@ #define OPENPOSE_THREAD_QUEUE_HPP #include // std::queue -#include +#include #include "queueBase.hpp" namespace op @@ -30,7 +30,7 @@ namespace op #include // std::is_same #include #include -#include +#include namespace op { template diff --git a/include/openpose/thread/queueBase.hpp b/include/openpose/thread/queueBase.hpp index bf156d907..bea2ee09e 100644 --- a/include/openpose/thread/queueBase.hpp +++ b/include/openpose/thread/queueBase.hpp @@ -4,7 +4,7 @@ #include // std::queue & std::priority_queue #include #include -#include +#include namespace op { @@ -93,7 +93,7 @@ namespace op #include #include #include -#include +#include namespace op { template diff --git a/include/openpose/thread/subThread.hpp b/include/openpose/thread/subThread.hpp index 803414246..5ade1178d 100644 --- a/include/openpose/thread/subThread.hpp +++ b/include/openpose/thread/subThread.hpp @@ -2,7 +2,7 @@ #define OPENPOSE_THREAD_SUB_THREAD_HPP #include -#include +#include #include "worker.hpp" namespace op @@ -41,7 +41,7 @@ namespace op // Implementation #include -#include +#include namespace op { template diff --git a/include/openpose/thread/subThreadNoQueue.hpp b/include/openpose/thread/subThreadNoQueue.hpp index d2f5cddf7..0c8f1eb0a 100644 --- a/include/openpose/thread/subThreadNoQueue.hpp +++ b/include/openpose/thread/subThreadNoQueue.hpp @@ -25,7 +25,7 @@ namespace op // Implementation #include -#include +#include namespace op { template diff --git a/include/openpose/thread/subThreadQueueIn.hpp b/include/openpose/thread/subThreadQueueIn.hpp index d65f67513..1714ea3eb 100644 --- a/include/openpose/thread/subThreadQueueIn.hpp +++ b/include/openpose/thread/subThreadQueueIn.hpp @@ -30,7 +30,7 @@ namespace op // Implementation #include -#include +#include namespace op { template diff --git a/include/openpose/thread/subThreadQueueInOut.hpp b/include/openpose/thread/subThreadQueueInOut.hpp index a05d7ebbd..b8fedc608 100644 --- a/include/openpose/thread/subThreadQueueInOut.hpp +++ b/include/openpose/thread/subThreadQueueInOut.hpp @@ -31,7 +31,7 @@ namespace op // Implementation #include -#include +#include namespace op { template diff --git a/include/openpose/thread/subThreadQueueOut.hpp b/include/openpose/thread/subThreadQueueOut.hpp index fe5414b6d..8cbf2be29 100644 --- a/include/openpose/thread/subThreadQueueOut.hpp +++ b/include/openpose/thread/subThreadQueueOut.hpp @@ -30,7 +30,7 @@ namespace op // Implementation #include -#include +#include namespace op { template diff --git a/include/openpose/thread/thread.hpp b/include/openpose/thread/thread.hpp index 4cb9259ad..55a45aee1 100644 --- a/include/openpose/thread/thread.hpp +++ b/include/openpose/thread/thread.hpp @@ -5,7 +5,7 @@ #include // std::shared_ptr #include #include -#include +#include #include "subThread.hpp" #include "worker.hpp" diff --git a/include/openpose/thread/threadManager.hpp b/include/openpose/thread/threadManager.hpp index d894aef16..420619c52 100644 --- a/include/openpose/thread/threadManager.hpp +++ b/include/openpose/thread/threadManager.hpp @@ -6,7 +6,7 @@ #include // std::multiset #include #include -#include +#include #include "enumClasses.hpp" #include "queue.hpp" #include "thread.hpp" diff --git a/include/openpose/thread/wIdGenerator.hpp b/include/openpose/thread/wIdGenerator.hpp index d5cf28179..850d13c5b 100644 --- a/include/openpose/thread/wIdGenerator.hpp +++ b/include/openpose/thread/wIdGenerator.hpp @@ -29,7 +29,7 @@ namespace op // Implementation #include -#include +#include #include namespace op { diff --git a/include/openpose/thread/wQueueOrderer.hpp b/include/openpose/thread/wQueueOrderer.hpp index a3c55951e..4861d6ab5 100644 --- a/include/openpose/thread/wQueueOrderer.hpp +++ b/include/openpose/thread/wQueueOrderer.hpp @@ -37,7 +37,7 @@ namespace op #include #include #include -#include +#include #include namespace op { diff --git a/include/openpose/thread/worker.hpp b/include/openpose/thread/worker.hpp index e681db38f..3187c9775 100644 --- a/include/openpose/thread/worker.hpp +++ b/include/openpose/thread/worker.hpp @@ -1,7 +1,7 @@ #ifndef OPENPOSE_THREAD_WORKER_HPP #define OPENPOSE_THREAD_WORKER_HPP -#include +#include namespace op { @@ -48,7 +48,7 @@ namespace op // Implementation -#include +#include namespace op { template diff --git a/include/openpose/thread/workerConsumer.hpp b/include/openpose/thread/workerConsumer.hpp index 00c894c3b..8c4ab8942 100644 --- a/include/openpose/thread/workerConsumer.hpp +++ b/include/openpose/thread/workerConsumer.hpp @@ -26,7 +26,7 @@ namespace op // Implementation -#include +#include namespace op { template diff --git a/include/openpose/thread/workerProducer.hpp b/include/openpose/thread/workerProducer.hpp index da64acf2f..c012dea40 100644 --- a/include/openpose/thread/workerProducer.hpp +++ b/include/openpose/thread/workerProducer.hpp @@ -26,7 +26,7 @@ namespace op // Implementation -#include +#include namespace op { template diff --git a/include/openpose/utilities/cuda.hpp b/include/openpose/utilities/cuda.hpp index b3de9b869..ddc5f29ec 100644 --- a/include/openpose/utilities/cuda.hpp +++ b/include/openpose/utilities/cuda.hpp @@ -6,23 +6,24 @@ #include #include #include +#include namespace op { const auto CUDA_NUM_THREADS = 512u; - void cudaCheck(const int line = -1, const std::string& function = "", const std::string& file = ""); + OP_API void cudaCheck(const int line = -1, const std::string& function = "", const std::string& file = ""); - int getGpuNumber(); + OP_API int getGpuNumber(); inline unsigned int getNumberCudaBlocks(const unsigned int totalRequired, const unsigned int numberCudaThreads = CUDA_NUM_THREADS) { return (totalRequired + numberCudaThreads - 1) / numberCudaThreads; } - dim3 getNumberCudaBlocks(const Point& frameSize, const dim3 numberCudaThreads = dim3{ CUDA_NUM_THREADS, CUDA_NUM_THREADS, 1 }); + OP_API dim3 getNumberCudaBlocks(const Point& frameSize, const dim3 numberCudaThreads = dim3{ CUDA_NUM_THREADS, CUDA_NUM_THREADS, 1 }); - std::pair getNumberCudaThreadsAndBlocks(const Point& frameSize); + OP_API std::pair getNumberCudaThreadsAndBlocks(const Point& frameSize); } #endif // OPENPOSE_UTILITIES_CUDA_HPP diff --git a/include/openpose/utilities/errorAndLog.hpp b/include/openpose/utilities/errorAndLog.hpp index d8a7dd5f3..ced9f97cf 100644 --- a/include/openpose/utilities/errorAndLog.hpp +++ b/include/openpose/utilities/errorAndLog.hpp @@ -6,8 +6,8 @@ #include // std::stringstream #include #include +#include #include "enumClasses.hpp" -#include "macros.hpp" namespace op { @@ -23,7 +23,7 @@ namespace op // Error managment - How to use: // error(message, __LINE__, __FUNCTION__, __FILE__); - void error(const std::string& message, const int line = -1, const std::string& function = "", const std::string& file = ""); + OP_API void error(const std::string& message, const int line = -1, const std::string& function = "", const std::string& file = ""); template inline void error(const T& message, const int line = -1, const std::string& function = "", const std::string& file = "") @@ -33,7 +33,7 @@ namespace op // Printing info - How to use: // log(message, desiredPriority, __LINE__, __FUNCTION__, __FILE__); // It will print info if desiredPriority >= sPriorityThreshold - void log(const std::string& message, const Priority priority = Priority::Max, 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 inline void log(const T& message, const Priority priority = Priority::Max, const int line = -1, const std::string& function = "", const std::string& file = "") @@ -58,7 +58,7 @@ namespace op } // This class is thread-safe - class ConfigureError + class OP_API ConfigureError { public: static std::vector getErrorModes(); @@ -67,7 +67,7 @@ namespace op }; // This class is thread-safe - class ConfigureLog + class OP_API ConfigureLog { public: static Priority getPriorityThreshold(); diff --git a/include/openpose/utilities/fileSystem.hpp b/include/openpose/utilities/fileSystem.hpp index 37a033c4d..7906b47ed 100644 --- a/include/openpose/utilities/fileSystem.hpp +++ b/include/openpose/utilities/fileSystem.hpp @@ -3,14 +3,15 @@ #include #include +#include namespace op { - void mkdir(const std::string& directoryPath); + OP_API void mkdir(const std::string& directoryPath); - bool exist(const std::string& directoryPath); + OP_API bool exist(const std::string& directoryPath); - bool isDirectory(const std::string& directoryPath); + OP_API bool isDirectory(const std::string& directoryPath); /** * This function makes sure that the directoryPathString is properly formatted. I.e., it @@ -18,28 +19,28 @@ namespace op * @param directoryPathString std::string with the directory path to be formatted. * @return std::string with the formatted directory path. */ - std::string formatAsDirectory(const std::string& directoryPathString); + OP_API std::string formatAsDirectory(const std::string& directoryPathString); /** * This function extracts the file name and extension from a full path. * @param fullPath std::string with the full path. * @return std::string with the file name with extension. */ - std::string getFileNameAndExtension(const std::string& fullPath); + OP_API std::string getFileNameAndExtension(const std::string& fullPath); /** * This function extracts the file name (without extension) from a full path. * @param fullPath std::string with the full path. * @return std::string with the file name without extension. */ - std::string getFileNameNoExtension(const std::string& fullPath); + OP_API std::string getFileNameNoExtension(const std::string& fullPath); /** * This function extracts the extension from a full path. * @param fullPath std::string with the full path. * @return std::string with the file extension. */ - std::string getFileExtension(const std::string& fullPath); + OP_API std::string getFileExtension(const std::string& fullPath); /** * This function extracts all the files in a directory path with the desired @@ -48,7 +49,7 @@ namespace op * @param extensions std::vector with the extensions of the desired files. * @return std::vector with the existing file names. */ - std::vector getFilesOnDirectory(const std::string& directoryPath, const std::vector& extensions = {}); + OP_API std::vector getFilesOnDirectory(const std::string& directoryPath, const std::vector& extensions = {}); /** * Analogous to getFilesOnDirectory(const std::string& directoryPath, const std::vector& extensions) for 1 specific @@ -57,7 +58,7 @@ namespace op * @param extension std::string with the extension of the desired files. * @return std::vector with the existing file names. */ - std::vector getFilesOnDirectory(const std::string& directoryPath, const std::string& extension); + OP_API std::vector getFilesOnDirectory(const std::string& directoryPath, const std::string& extension); } #endif // OPENPOSE_UTILITIES_FILE_SYSTEM_HPP diff --git a/include/openpose/utilities/flagsToOpenPose.hpp b/include/openpose/utilities/flagsToOpenPose.hpp index ec6d42d7c..7d0abb9fc 100644 --- a/include/openpose/utilities/flagsToOpenPose.hpp +++ b/include/openpose/utilities/flagsToOpenPose.hpp @@ -8,26 +8,27 @@ #include #include #include +#include namespace op { - PoseModel flagsToPoseModel(const std::string& poseModeString); + OP_API PoseModel flagsToPoseModel(const std::string& poseModeString); - ScaleMode flagsToScaleMode(const int keypointScale); + OP_API ScaleMode flagsToScaleMode(const int keypointScale); // Determine type of frame source - ProducerType flagsToProducerType(const std::string& imageDirectory, const std::string& videoPath, const int webcamIndex); + OP_API ProducerType flagsToProducerType(const std::string& imageDirectory, const std::string& videoPath, const int webcamIndex); - std::shared_ptr flagsToProducer(const std::string& imageDirectory, const std::string& videoPath, - const int webcamIndex, const std::string& webcamResolution = "1280x720", - const double webcamFps = 30.); + OP_API std::shared_ptr flagsToProducer(const std::string& imageDirectory, const std::string& videoPath, + const int webcamIndex, const std::string& webcamResolution = "1280x720", + const double webcamFps = 30.); - std::vector flagsToHeatMaps(const bool heatMapsAddParts = false, const bool heatMapsAddBkg = false, - const bool heatMapsAddPAFs = false); + OP_API std::vector flagsToHeatMaps(const bool heatMapsAddParts = false, const bool heatMapsAddBkg = false, + const bool heatMapsAddPAFs = false); - RenderMode flagsToRenderMode(const int renderFlag, const int renderPoseFlag = -2); + OP_API RenderMode flagsToRenderMode(const int renderFlag, const int renderPoseFlag = -2); - Point flagsToPoint(const std::string& pointString, const std::string& pointExample = "1280x720"); + OP_API Point flagsToPoint(const std::string& pointString, const std::string& pointExample = "1280x720"); } #endif // OPENPOSE_UTILITIES_FLAGS_TO_OPEN_POSE_HPP diff --git a/include/openpose/utilities/headers.hpp b/include/openpose/utilities/headers.hpp index 93fac577f..2313c9629 100644 --- a/include/openpose/utilities/headers.hpp +++ b/include/openpose/utilities/headers.hpp @@ -10,7 +10,6 @@ #include "fileSystem.hpp" #include "flagsToOpenPose.hpp" #include "keypoint.hpp" -#include "macros.hpp" #include "openCv.hpp" #include "pointerContainer.hpp" #include "profiler.hpp" diff --git a/include/openpose/utilities/keypoint.hpp b/include/openpose/utilities/keypoint.hpp index 98980f714..e9bbd88fc 100644 --- a/include/openpose/utilities/keypoint.hpp +++ b/include/openpose/utilities/keypoint.hpp @@ -4,32 +4,33 @@ #include #include #include +#include namespace op { - float getDistance(const Array& keypoints, const int person, const int elementA, const int elementB); + OP_API float getDistance(const Array& keypoints, const int person, const int elementA, const int elementB); - void averageKeypoints(Array& keypointsA, const Array& keypointsB, const int personA); + OP_API void averageKeypoints(Array& keypointsA, const Array& keypointsB, const int personA); - void scaleKeypoints(Array& keypoints, const float scale); + OP_API void scaleKeypoints(Array& keypoints, const float scale); - void scaleKeypoints(Array& keypoints, const float scaleX, const float scaleY); + OP_API void scaleKeypoints(Array& keypoints, const float scaleX, const float scaleY); - void scaleKeypoints(Array& keypoints, const float scaleX, const float scaleY, const float offsetX, - const float offsetY); + OP_API void scaleKeypoints(Array& keypoints, const float scaleX, const float scaleY, const float offsetX, + const float offsetY); - void renderKeypointsCpu(Array& frameArray, const Array& keypoints, - const std::vector& pairs, const std::vector colors, - const float thicknessCircleRatio, const float thicknessLineRatioWRTCircle, - const float threshold); + OP_API void renderKeypointsCpu(Array& frameArray, const Array& keypoints, + const std::vector& pairs, const std::vector colors, + const float thicknessCircleRatio, const float thicknessLineRatioWRTCircle, + const float threshold); - Rectangle getKeypointsRectangle(const Array& keypoints, const int person, const int numberKeypoints, const float threshold); + OP_API Rectangle getKeypointsRectangle(const Array& keypoints, const int person, const int numberKeypoints, const float threshold); - float getAverageScore(const Array& keypoints, const int person); + OP_API float getAverageScore(const Array& keypoints, const int person); - float getKeypointsArea(const Array& keypoints, const int person, const int numberKeypoints, const float threshold); + OP_API float getKeypointsArea(const Array& keypoints, const int person, const int numberKeypoints, const float threshold); - int getBiggestPerson(const Array& keypoints, const float threshold); + OP_API int getBiggestPerson(const Array& keypoints, const float threshold); } #endif // OPENPOSE_UTILITIES_KEYPOINT_HPP diff --git a/include/openpose/utilities/macros.hpp b/include/openpose/utilities/macros.hpp deleted file mode 100644 index ac1d4c2e9..000000000 --- a/include/openpose/utilities/macros.hpp +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef OPENPOSE_UTILITIES_MACROS_HPP -#define OPENPOSE_UTILITIES_MACROS_HPP - -#include // std::shared_ptr -#include -#include - -#define DATUM_BASE_NO_PTR std::vector -#define DATUM_BASE std::shared_ptr -#define DEFINE_TEMPLATE_DATUM(templateName) template class templateName -#define COMPILE_TEMPLATE_DATUM(templateName) extern DEFINE_TEMPLATE_DATUM(templateName) - -#define UNUSED(unusedVariable) (void)(unusedVariable) - -#define DELETE_COPY(className) \ - className(const className&) = delete; \ - className& operator=(const className&) = delete - -#define COMPILE_TEMPLATE_BASIC_TYPES_CLASS(className) COMPILE_TEMPLATE_BASIC_TYPES(className, class) - -#define COMPILE_TEMPLATE_BASIC_TYPES_STRUCT(className) COMPILE_TEMPLATE_BASIC_TYPES(className, struct) - -#define COMPILE_TEMPLATE_BASIC_TYPES(className, classType) \ - template classType className; \ - template classType className; \ - template classType className; \ - template classType className; \ - template classType className; \ - template classType className; \ - template classType className; \ - template classType className; \ - template classType className; \ - template classType className; \ - template classType className; \ - template classType className; \ - template classType className; \ - template classType className - -#endif // OPENPOSE_UTILITIES_MACROS_HPP diff --git a/include/openpose/utilities/openCv.hpp b/include/openpose/utilities/openCv.hpp index b9c87927f..751b5e959 100644 --- a/include/openpose/utilities/openCv.hpp +++ b/include/openpose/utilities/openCv.hpp @@ -3,22 +3,24 @@ #include // cv::Mat #include // cv::warpAffine, cv::BORDER_CONSTANT -#include // Point +#include +#include +#include namespace op { - void putTextOnCvMat(cv::Mat& cvMat, const std::string& textToDisplay, const Point& position, const cv::Scalar& color, const bool normalizeWidth); + OP_API void putTextOnCvMat(cv::Mat& cvMat, const std::string& textToDisplay, const Point& position, const cv::Scalar& color, const bool normalizeWidth); - void floatPtrToUCharCvMat(cv::Mat& cvMat, const float* const floatImage, const Point& resolutionSize, const int resolutionChannels); + OP_API void floatPtrToUCharCvMat(cv::Mat& cvMat, const float* const floatImage, const Point& resolutionSize, const int resolutionChannels); - void unrollArrayToUCharCvMat(cv::Mat& cvMatResult, const Array& array); + OP_API void unrollArrayToUCharCvMat(cv::Mat& cvMatResult, const Array& array); - void uCharCvMatToFloatPtr(float* floatImage, const cv::Mat& cvImage, const bool normalize); + OP_API void uCharCvMatToFloatPtr(float* floatImage, const cv::Mat& cvImage, const bool normalize); - double resizeGetScaleFactor(const Point& initialSize, const Point& targetSize); + OP_API double resizeGetScaleFactor(const Point& initialSize, const Point& targetSize); - cv::Mat resizeFixedAspectRatio(const cv::Mat& cvMat, const double scaleFactor, const Point& targetSize, const int borderMode = cv::BORDER_CONSTANT, - const cv::Scalar& borderValue = cv::Scalar{0,0,0}); + OP_API cv::Mat resizeFixedAspectRatio(const cv::Mat& cvMat, const double scaleFactor, const Point& targetSize, const int borderMode = cv::BORDER_CONSTANT, + const cv::Scalar& borderValue = cv::Scalar{0,0,0}); } #endif // OPENPOSE_UTILITIES_OPEN_CV_HPP diff --git a/include/openpose/utilities/pointerContainer.hpp b/include/openpose/utilities/pointerContainer.hpp index 0505f5fae..a85dd68a9 100644 --- a/include/openpose/utilities/pointerContainer.hpp +++ b/include/openpose/utilities/pointerContainer.hpp @@ -1,6 +1,8 @@ #ifndef OPENPOSE_UTILITIES_POINTER_CONTAINER_HPP #define OPENPOSE_UTILITIES_POINTER_CONTAINER_HPP +#include + namespace op { template @@ -10,7 +12,7 @@ namespace op } template - class PointerContainerGreater + class OP_API PointerContainerGreater { public: bool operator() (TDatums& a, TDatums& b) @@ -25,7 +27,7 @@ namespace op }; template - class PointerContainerLess + class OP_API PointerContainerLess { public: bool operator() (TDatums& a, TDatums& b) diff --git a/include/openpose/utilities/profiler.hpp b/include/openpose/utilities/profiler.hpp index e00da75e9..70ba96730 100644 --- a/include/openpose/utilities/profiler.hpp +++ b/include/openpose/utilities/profiler.hpp @@ -2,6 +2,7 @@ #define OPENPOSE_UTILITIES_PROFILER_HPP #include +#include // Enable PROFILER_ENABLED on Makefile.config in order to use this function. Otherwise nothing will be outputted. @@ -17,7 +18,7 @@ namespace op { - class Profiler + class OP_API Profiler { public: static const unsigned long long DEFAULT_X; diff --git a/include/openpose/utilities/string.hpp b/include/openpose/utilities/string.hpp index 262c42855..49d5ef0ab 100644 --- a/include/openpose/utilities/string.hpp +++ b/include/openpose/utilities/string.hpp @@ -3,6 +3,7 @@ #include #include +#include namespace op { @@ -14,9 +15,9 @@ namespace op * @return std::string with the formatted value. */ template - std::string toFixedLengthString(const T number, const unsigned long long stringLength = 0); + OP_API std::string toFixedLengthString(const T number, const unsigned long long stringLength = 0); - std::vector splitString(const std::string& stringToSplit, const std::string& delimiter); + OP_API std::vector splitString(const std::string& stringToSplit, const std::string& delimiter); } #endif // OPENPOSE_UTILITIES_STRING_HPP diff --git a/include/openpose/wrapper/wrapperStructFace.hpp b/include/openpose/wrapper/wrapperStructFace.hpp index 87cf0ac87..c13a41f09 100644 --- a/include/openpose/wrapper/wrapperStructFace.hpp +++ b/include/openpose/wrapper/wrapperStructFace.hpp @@ -4,6 +4,7 @@ #include #include #include +#include namespace op { @@ -12,7 +13,7 @@ namespace op * WrapperStructFace allows the user to set up the face estimation and rendering parameters that will be used for the OpenPose Wrapper * class. */ - struct WrapperStructFace + struct OP_API WrapperStructFace { /** * Whether to extract face. diff --git a/include/openpose/wrapper/wrapperStructHand.hpp b/include/openpose/wrapper/wrapperStructHand.hpp index b8944893e..f61403897 100644 --- a/include/openpose/wrapper/wrapperStructHand.hpp +++ b/include/openpose/wrapper/wrapperStructHand.hpp @@ -4,6 +4,7 @@ #include #include #include +#include namespace op { @@ -12,7 +13,7 @@ namespace op * WrapperStructHand allows the user to set up the hand estimation and rendering parameters that will be used for the OpenPose Wrapper * class. */ - struct WrapperStructHand + struct OP_API WrapperStructHand { /** * Whether to extract hand. diff --git a/include/openpose/wrapper/wrapperStructInput.hpp b/include/openpose/wrapper/wrapperStructInput.hpp index 1673807ad..d5dc4d4c9 100644 --- a/include/openpose/wrapper/wrapperStructInput.hpp +++ b/include/openpose/wrapper/wrapperStructInput.hpp @@ -3,6 +3,7 @@ #include #include +#include namespace op { @@ -10,7 +11,7 @@ namespace op * WrapperStructInput: Input (images, video, webcam, etc.) configuration struct. * WrapperStructInput allows the user to set up the input frames generator. */ - struct WrapperStructInput + struct OP_API WrapperStructInput { /** * Producer which will generate the frames. diff --git a/include/openpose/wrapper/wrapperStructOutput.hpp b/include/openpose/wrapper/wrapperStructOutput.hpp index 452c3db5f..16cce61d9 100644 --- a/include/openpose/wrapper/wrapperStructOutput.hpp +++ b/include/openpose/wrapper/wrapperStructOutput.hpp @@ -3,6 +3,7 @@ #include #include +#include namespace op { @@ -10,7 +11,7 @@ namespace op * WrapperStructOutput: Output (small GUI, writing rendered results and/or pose data, etc.) configuration struct. * WrapperStructOutput allows the user to set up the input frames generator. */ - struct WrapperStructOutput + struct OP_API WrapperStructOutput { /** * Whether to display the OpenPose small integrated GUI. diff --git a/include/openpose/wrapper/wrapperStructPose.hpp b/include/openpose/wrapper/wrapperStructPose.hpp index 1096ad131..6f3dda3ee 100644 --- a/include/openpose/wrapper/wrapperStructPose.hpp +++ b/include/openpose/wrapper/wrapperStructPose.hpp @@ -5,6 +5,7 @@ #include #include #include +#include namespace op { @@ -13,7 +14,7 @@ namespace op * WrapperStructPose allows the user to set up the pose estimation and rendering parameters that will be used for the OpenPose Wrapper * class. */ - struct WrapperStructPose + struct OP_API WrapperStructPose { /** * CCN (Conv Net) input size. diff --git a/src/openpose/core/array.cpp b/src/openpose/core/array.cpp index e047fccf9..0c4a5abde 100644 --- a/src/openpose/core/array.cpp +++ b/src/openpose/core/array.cpp @@ -1,6 +1,7 @@ #include // typeid #include // std::accumulate #include +#include #include namespace op diff --git a/src/openpose/core/maximumBase.cpp b/src/openpose/core/maximumBase.cpp index a4f1ce58b..31465e2ac 100644 --- a/src/openpose/core/maximumBase.cpp +++ b/src/openpose/core/maximumBase.cpp @@ -1,6 +1,5 @@ // #include #include -#include #include namespace op diff --git a/src/openpose/core/maximumCaffe.cpp b/src/openpose/core/maximumCaffe.cpp index 1469bcec9..9c3a11334 100644 --- a/src/openpose/core/maximumCaffe.cpp +++ b/src/openpose/core/maximumCaffe.cpp @@ -1,7 +1,6 @@ #ifdef USE_CAFFE #include #include -#include #include namespace op diff --git a/src/openpose/core/nmsBase.cpp b/src/openpose/core/nmsBase.cpp index 28139d812..2a31934ea 100644 --- a/src/openpose/core/nmsBase.cpp +++ b/src/openpose/core/nmsBase.cpp @@ -1,5 +1,4 @@ #include -#include #include namespace op diff --git a/src/openpose/core/nmsCaffe.cpp b/src/openpose/core/nmsCaffe.cpp index 309588e08..4e121ff18 100644 --- a/src/openpose/core/nmsCaffe.cpp +++ b/src/openpose/core/nmsCaffe.cpp @@ -1,7 +1,6 @@ #ifdef USE_CAFFE #include #include -#include #include namespace op diff --git a/src/openpose/core/point.cpp b/src/openpose/core/point.cpp index 7ab69c492..dd4abc61d 100644 --- a/src/openpose/core/point.cpp +++ b/src/openpose/core/point.cpp @@ -1,5 +1,5 @@ #include -#include +#include #include namespace op diff --git a/src/openpose/core/rectangle.cpp b/src/openpose/core/rectangle.cpp index 888565148..49ab768ab 100644 --- a/src/openpose/core/rectangle.cpp +++ b/src/openpose/core/rectangle.cpp @@ -1,5 +1,5 @@ #include -#include +#include #include namespace op diff --git a/src/openpose/core/resizeAndMergeBase.cpp b/src/openpose/core/resizeAndMergeBase.cpp index 463074c89..17e1d1bf8 100644 --- a/src/openpose/core/resizeAndMergeBase.cpp +++ b/src/openpose/core/resizeAndMergeBase.cpp @@ -1,6 +1,5 @@ // #include #include -#include #include namespace op diff --git a/src/openpose/core/resizeAndMergeCaffe.cpp b/src/openpose/core/resizeAndMergeCaffe.cpp index 91a2658b9..fbf49e787 100644 --- a/src/openpose/core/resizeAndMergeCaffe.cpp +++ b/src/openpose/core/resizeAndMergeCaffe.cpp @@ -2,7 +2,6 @@ #include #include #include -#include #include namespace op diff --git a/src/openpose/pose/bodyPartConnectorCaffe.cpp b/src/openpose/pose/bodyPartConnectorCaffe.cpp index b43b83688..e637fbc9b 100644 --- a/src/openpose/pose/bodyPartConnectorCaffe.cpp +++ b/src/openpose/pose/bodyPartConnectorCaffe.cpp @@ -1,7 +1,7 @@ #ifdef USE_CAFFE #include #include -#include +#include #include namespace op diff --git a/src/openpose/producer/defineTemplates.cpp b/src/openpose/producer/defineTemplates.cpp index 5f59c6e9c..81880b21e 100644 --- a/src/openpose/producer/defineTemplates.cpp +++ b/src/openpose/producer/defineTemplates.cpp @@ -2,6 +2,6 @@ namespace op { - template class DatumProducer; - template class WDatumProducer; + template class OP_API DatumProducer; + template class OP_API WDatumProducer; } diff --git a/src/openpose/thread/defineTemplates.cpp b/src/openpose/thread/defineTemplates.cpp index 13aa1116e..a3282b138 100644 --- a/src/openpose/thread/defineTemplates.cpp +++ b/src/openpose/thread/defineTemplates.cpp @@ -4,8 +4,8 @@ namespace op { DEFINE_TEMPLATE_DATUM(PriorityQueue); DEFINE_TEMPLATE_DATUM(Queue); - template class QueueBase>; - template class QueueBase, std::greater>>; + template class OP_API QueueBase>; + template class OP_API QueueBase, std::greater>>; DEFINE_TEMPLATE_DATUM(SubThread); DEFINE_TEMPLATE_DATUM(SubThreadNoQueue); DEFINE_TEMPLATE_DATUM(SubThreadQueueIn); diff --git a/src/openpose/utilities/profiler.cpp b/src/openpose/utilities/profiler.cpp index ade765e0b..11ecf1bed 100644 --- a/src/openpose/utilities/profiler.cpp +++ b/src/openpose/utilities/profiler.cpp @@ -3,7 +3,7 @@ #include #include #include -#include +#include #include // First, I apologize for the ugliness of the code of this function. Nevertheless, it has been made diff --git a/src/openpose/wrapper/defineTemplates.cpp b/src/openpose/wrapper/defineTemplates.cpp index f4453c689..2dfe48c18 100644 --- a/src/openpose/wrapper/defineTemplates.cpp +++ b/src/openpose/wrapper/defineTemplates.cpp @@ -2,5 +2,5 @@ namespace op { - template class Wrapper; + template class OP_API Wrapper; } diff --git a/windows/OpenPose/OpenPose.vcxproj b/windows/OpenPose/OpenPose.vcxproj index a223ebaf9..1d8d56c7e 100644 --- a/windows/OpenPose/OpenPose.vcxproj +++ b/windows/OpenPose/OpenPose.vcxproj @@ -17,13 +17,13 @@ - StaticLibrary + DynamicLibrary true v140 MultiByte - StaticLibrary + DynamicLibrary false v140 true @@ -42,20 +42,30 @@ - + + $(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64;D:\Programs\Python27\libs;C:\Python27\libs + + + $(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64;D:\Programs\Python27\libs;C:\Python27\libs + false + EnableAllWarnings Disabled true $(IntDir)\obj\obj\obj\%(RelativeDir)\%(Filename)%(Extension).obj - CAFFE_VERSION=1.0.0;BOOST_ALL_NO_LIB;USE_LMDB;USE_LEVELDB;USE_CUDNN;USE_OPENCV;USE_CAFFE;CMAKE_WINDOWS_BUILD;GLOG_NO_ABBREVIATED_SEVERITIES;GOOGLE_GLOG_DLL_DECL=__declspec(dllimport);GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=__declspec(dllimport);H5_BUILT_AS_DYNAMIC_LIB=1;CMAKE_INTDIR="Release";_CRT_SECURE_NO_WARNINGS;_MBCS;%(PreprocessorDefinitions) + OP_EXPORTS;BOOST_ALL_NO_LIB;CAFFE_VERSION=1.0.0;CMAKE_INTDIR="Release";CMAKE_WINDOWS_BUILD;GLOG_NO_ABBREVIATED_SEVERITIES;GOOGLE_GLOG_DLL_DECL=__declspec(dllimport);GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=__declspec(dllimport);H5_BUILT_AS_DYNAMIC_LIB=1;USE_CAFFE;USE_CUDNN;USE_OPENCV;USE_LEVELDB;USE_LMDB;_CRT_SECURE_NO_WARNINGS true $(IntDir)\obj\obj\obj\%(RelativeDir)\%(Filename)%(Extension).obj compute_30,sm_30;compute_35,sm_35;compute_50,sm_50;compute_52,sm_52;compute_61,sm_61 + + $(CUDA_PATH_V8_0)\lib\x64\;$(PYTHON_LIB);$(CudaToolkitLibDir);%(AdditionalLibraryDirectories);%(AdditionalLibraryDirectories); + 1.0.1 + @@ -65,7 +75,7 @@ true true ..\..\include;..\..\3rdparty\windows\opencv\include;..\..\3rdparty\windows\caffe\include;..\..\3rdparty\windows\caffe\include2;..\..\3rdparty\windows\caffe3rdparty\include;..\..\3rdparty\windows\caffe3rdparty\include\boost-1_61;$(CUDA_PATH_V8_0)\include;%(AdditionalIncludeDirectories) - BOOST_ALL_NO_LIB;CAFFE_VERSION=1.0.0;CMAKE_INTDIR="Release";CMAKE_WINDOWS_BUILD;GLOG_NO_ABBREVIATED_SEVERITIES;GOOGLE_GLOG_DLL_DECL=__declspec(dllimport);GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=__declspec(dllimport);H5_BUILT_AS_DYNAMIC_LIB=1;USE_CAFFE;USE_CUDNN;USE_OPENCV;USE_LEVELDB;USE_LMDB;_CRT_SECURE_NO_WARNINGS;-D_SCL_SECURE_NO_WARNINGS + OP_EXPORTS;BOOST_ALL_NO_LIB;CAFFE_VERSION=1.0.0;CMAKE_INTDIR="Release";CMAKE_WINDOWS_BUILD;GLOG_NO_ABBREVIATED_SEVERITIES;GOOGLE_GLOG_DLL_DECL=__declspec(dllimport);GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=__declspec(dllimport);H5_BUILT_AS_DYNAMIC_LIB=1;USE_CAFFE;USE_CUDNN;USE_OPENCV;USE_LEVELDB;USE_LMDB;_CRT_SECURE_NO_WARNINGS $(IntDir)\obj\obj\obj\%(RelativeDir)\%(Filename)%(Extension).obj true Speed @@ -74,6 +84,8 @@ true true + ..\..\3rdparty\windows\caffe\lib\Release\caffe.lib;..\..\3rdparty\windows\caffe\lib\Release\proto.lib;..\..\3rdparty\windows\caffe3rdparty\lib\boost_atomic-vc140-mt-1_61.lib;..\..\3rdparty\windows\caffe3rdparty\lib\boost_chrono-vc140-mt-1_61.lib;..\..\3rdparty\windows\caffe3rdparty\lib\boost_date_time-vc140-mt-1_61.lib;..\..\3rdparty\windows\caffe3rdparty\lib\boost_filesystem-vc140-mt-1_61.lib;..\..\3rdparty\windows\caffe3rdparty\lib\boost_python-vc140-mt-1_61.lib;..\..\3rdparty\windows\caffe3rdparty\lib\boost_system-vc140-mt-1_61.lib;..\..\3rdparty\windows\caffe3rdparty\lib\boost_thread-vc140-mt-1_61.lib;..\..\3rdparty\windows\caffe3rdparty\lib\caffehdf5.lib;..\..\3rdparty\windows\caffe3rdparty\lib\caffehdf5_hl.lib;..\..\3rdparty\windows\caffe3rdparty\lib\caffezlib.lib;..\..\3rdparty\windows\caffe3rdparty\lib\gflags.lib;..\..\3rdparty\windows\caffe3rdparty\lib\glog.lib;..\..\3rdparty\windows\caffe3rdparty\lib\leveldb.lib;..\..\3rdparty\windows\caffe3rdparty\lib\libopenblas.dll.a;..\..\3rdparty\windows\caffe3rdparty\lib\libprotobuf.lib;..\..\3rdparty\windows\caffe3rdparty\lib\lmdb.lib;..\..\3rdparty\windows\caffe3rdparty\lib\snappy.lib;..\..\3rdparty\windows\opencv\x64\vc14\lib\opencv_world310.lib;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64\cublas.lib;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64\cublas_device.lib;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64\cudart.lib;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64\cudnn.lib;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64\curand.lib;ntdll.lib;python27.lib;shlwapi.lib;%(AdditionalDependencies) + $(CUDA_PATH_V8_0)\lib\x64\;$(PYTHON_LIB);$(CudaToolkitLibDir);%(AdditionalLibraryDirectories); $(IntDir)\obj\obj\obj\%(RelativeDir)\%(Filename)%(Extension).obj @@ -83,12 +95,14 @@ + + @@ -203,7 +217,6 @@ - diff --git a/windows/OpenPose/OpenPose.vcxproj.filters b/windows/OpenPose/OpenPose.vcxproj.filters index 5588701b6..827b918d2 100644 --- a/windows/OpenPose/OpenPose.vcxproj.filters +++ b/windows/OpenPose/OpenPose.vcxproj.filters @@ -188,9 +188,6 @@ Header Files\utilities - - Header Files\utilities - Header Files\utilities @@ -476,6 +473,12 @@ Header Files\hand + + Header Files\core + + + Header Files\core + diff --git a/windows/OpenPoseDemo/OpenPoseDemo.vcxproj b/windows/OpenPoseDemo/OpenPoseDemo.vcxproj index 7019fb14e..af324cb03 100644 --- a/windows/OpenPoseDemo/OpenPoseDemo.vcxproj +++ b/windows/OpenPoseDemo/OpenPoseDemo.vcxproj @@ -46,6 +46,7 @@ $(VC_ExecutablePath_x64);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(FxCopDir);$(PATH); $(VC_ReferencesPath_x64); $(ProjectName)\$(Platform)\$(Configuration)\ + false $(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64;D:\Programs\Python27\libs;C:\Python27\libs diff --git a/windows/TutorialPose/1_extract_from_image.vcxproj b/windows/TutorialPose/1_extract_from_image.vcxproj index 00a4b0827..39ee10190 100644 --- a/windows/TutorialPose/1_extract_from_image.vcxproj +++ b/windows/TutorialPose/1_extract_from_image.vcxproj @@ -49,6 +49,7 @@ $(VC_ExecutablePath_x64);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(FxCopDir);$(PATH); $(VC_ReferencesPath_x64); $(ProjectName)\$(Platform)\$(Configuration)\ + false $(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64;D:\Programs\Python27\libs;C:\Python27\libs diff --git a/windows/TutorialPose/2_extract_pose_or_heatmat_from_image.vcxproj b/windows/TutorialPose/2_extract_pose_or_heatmat_from_image.vcxproj index 4b1e36624..31c94703c 100644 --- a/windows/TutorialPose/2_extract_pose_or_heatmat_from_image.vcxproj +++ b/windows/TutorialPose/2_extract_pose_or_heatmat_from_image.vcxproj @@ -49,6 +49,7 @@ $(VC_ExecutablePath_x64);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(FxCopDir);$(PATH); $(VC_ReferencesPath_x64); $(ProjectName)\$(Platform)\$(Configuration)\ + false $(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64;D:\Programs\Python27\libs;C:\Python27\libs diff --git a/windows/TutorialThread/1_openpose_read_and_display.vcxproj b/windows/TutorialThread/1_openpose_read_and_display.vcxproj index cbc5a0ae1..169e8a677 100644 --- a/windows/TutorialThread/1_openpose_read_and_display.vcxproj +++ b/windows/TutorialThread/1_openpose_read_and_display.vcxproj @@ -49,6 +49,7 @@ $(VC_ExecutablePath_x64);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(FxCopDir);$(PATH); $(VC_ReferencesPath_x64); $(ProjectName)\$(Platform)\$(Configuration)\ + false $(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64;D:\Programs\Python27\libs;C:\Python27\libs diff --git a/windows/TutorialThread/2_user_processing_function.vcxproj b/windows/TutorialThread/2_user_processing_function.vcxproj index 34b63088d..a4b8fa8e2 100644 --- a/windows/TutorialThread/2_user_processing_function.vcxproj +++ b/windows/TutorialThread/2_user_processing_function.vcxproj @@ -49,6 +49,7 @@ $(VC_ExecutablePath_x64);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(FxCopDir);$(PATH); $(VC_ReferencesPath_x64); $(ProjectName)\$(Platform)\$(Configuration)\ + false $(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64;D:\Programs\Python27\libs;C:\Python27\libs diff --git a/windows/TutorialThread/3_user_input_processing_and_output.vcxproj b/windows/TutorialThread/3_user_input_processing_and_output.vcxproj index 1a481a28c..e5376ea78 100644 --- a/windows/TutorialThread/3_user_input_processing_and_output.vcxproj +++ b/windows/TutorialThread/3_user_input_processing_and_output.vcxproj @@ -49,6 +49,7 @@ $(VC_ExecutablePath_x64);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(FxCopDir);$(PATH); $(VC_ReferencesPath_x64); $(ProjectName)\$(Platform)\$(Configuration)\ + false $(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64;D:\Programs\Python27\libs;C:\Python27\libs diff --git a/windows/TutorialThread/4_user_input_processing_output_and_datum.vcxproj b/windows/TutorialThread/4_user_input_processing_output_and_datum.vcxproj index 0f57a062a..6c8cf8b2f 100644 --- a/windows/TutorialThread/4_user_input_processing_output_and_datum.vcxproj +++ b/windows/TutorialThread/4_user_input_processing_output_and_datum.vcxproj @@ -49,6 +49,7 @@ $(VC_ExecutablePath_x64);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(FxCopDir);$(PATH); $(VC_ReferencesPath_x64); $(ProjectName)\$(Platform)\$(Configuration)\ + false $(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64;D:\Programs\Python27\libs;C:\Python27\libs diff --git a/windows/TutorialWrapper/1_user_asynchronous.vcxproj b/windows/TutorialWrapper/1_user_asynchronous.vcxproj index 5162f3258..41dd40b23 100644 --- a/windows/TutorialWrapper/1_user_asynchronous.vcxproj +++ b/windows/TutorialWrapper/1_user_asynchronous.vcxproj @@ -49,6 +49,7 @@ $(VC_ExecutablePath_x64);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(FxCopDir);$(PATH); $(VC_ReferencesPath_x64); $(ProjectName)\$(Platform)\$(Configuration)\ + false $(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64;D:\Programs\Python27\libs;C:\Python27\libs diff --git a/windows/TutorialWrapper/2_user_synchronous.vcxproj b/windows/TutorialWrapper/2_user_synchronous.vcxproj index 8c5bed126..cc18bfc7d 100644 --- a/windows/TutorialWrapper/2_user_synchronous.vcxproj +++ b/windows/TutorialWrapper/2_user_synchronous.vcxproj @@ -49,6 +49,7 @@ $(VC_ExecutablePath_x64);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(FxCopDir);$(PATH); $(VC_ReferencesPath_x64); $(ProjectName)\$(Platform)\$(Configuration)\ + false $(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64;D:\Programs\Python27\libs;C:\Python27\libs