├── .gitignore ├── .gitmodules ├── LICENSE ├── OpenPoseDotNet.sln ├── README.md ├── examples ├── OpenPoseDemo │ ├── .gitignore │ ├── CopyOpenPose.sh │ ├── OpenPoseDemo.csproj │ ├── Program.cs │ ├── README.md │ └── SymlinkBinary.bat ├── TutorialAddModule │ └── 1_CustomPostProcessing │ │ ├── .gitignore │ │ ├── 1_CustomPostProcessing.csproj │ │ ├── CopyOpenPose.sh │ │ ├── Program.cs │ │ ├── README.md │ │ ├── SymlinkBinary.bat │ │ ├── UserPostProcessing.cs │ │ └── WUserPostProcessing.cs ├── TutorialApiCpp │ ├── 01_BodyFromImageDefault │ │ ├── .gitignore │ │ ├── 01_BodyFromImageDefault.csproj │ │ ├── CopyOpenPose.sh │ │ ├── Program.cs │ │ ├── README.md │ │ ├── SymlinkBinary.bat │ │ └── images │ │ │ └── example_turorial_1.png │ ├── 01_BodyFromImageDefaultBitmap │ │ ├── .gitignore │ │ ├── 01_BodyFromImageDefaultBitmap.csproj │ │ ├── CopyOpenPose.sh │ │ ├── Program.cs │ │ ├── README.md │ │ ├── SymlinkBinary.bat │ │ └── images │ │ │ └── example_turorial_1.png │ ├── 01_BodyFromImageDefaultRawImage │ │ ├── .gitignore │ │ ├── 01_BodyFromImageDefaultRawImage.csproj │ │ ├── CopyOpenPose.sh │ │ ├── Program.cs │ │ ├── README.md │ │ ├── SymlinkBinary.bat │ │ └── images │ │ │ └── example_turorial_1.png │ ├── 02_WholeBodyFromImageDefault │ │ ├── .gitignore │ │ ├── 02_WholeBodyFromImageDefault.csproj │ │ ├── CopyOpenPose.sh │ │ ├── Program.cs │ │ ├── README.md │ │ ├── SymlinkBinary.bat │ │ └── images │ │ │ └── example_turorial_2.png │ ├── 03_KeyPointsFromImage │ │ ├── .gitignore │ │ ├── 03_KeyPointsFromImage.csproj │ │ ├── CopyOpenPose.sh │ │ ├── Program.cs │ │ ├── README.md │ │ ├── SymlinkBinary.bat │ │ └── images │ │ │ └── example_turorial_3.png │ ├── 04_KeyPointsFromImages │ │ ├── .gitignore │ │ ├── 04_KeyPointsFromImages.csproj │ │ ├── CopyOpenPose.sh │ │ ├── Program.cs │ │ ├── README.md │ │ ├── SymlinkBinary.bat │ │ └── images │ │ │ └── example_turorial_4.gif │ ├── 05_KeyPointsFromImagesMultiGPU │ │ ├── .gitignore │ │ ├── 05_KeyPointsFromImagesMultiGPU.csproj │ │ ├── CopyOpenPose.sh │ │ ├── Program.cs │ │ ├── README.md │ │ ├── SymlinkBinary.bat │ │ └── images │ │ │ └── example_turorial_5.gif │ ├── 06_FaceFromImage │ │ ├── .gitignore │ │ ├── 06_FaceFromImage.csproj │ │ ├── CopyOpenPose.sh │ │ ├── Program.cs │ │ ├── README.md │ │ ├── SymlinkBinary.bat │ │ └── images │ │ │ └── example_turorial_9.png │ ├── 07_HandFromImage │ │ ├── .gitignore │ │ ├── 07_HandFromImage.csproj │ │ ├── CopyOpenPose.sh │ │ ├── Program.cs │ │ ├── README.md │ │ ├── SymlinkBinary.bat │ │ └── images │ │ │ └── example_turorial_10.png │ ├── 08_HeatmapsFromImage │ │ ├── .gitignore │ │ ├── 08_HeatmapsFromImage.csproj │ │ ├── CopyOpenPose.sh │ │ ├── Program.cs │ │ ├── README.md │ │ ├── SymlinkBinary.bat │ │ └── images │ │ │ └── example_turorial_8.gif │ ├── 09_KeyPointsFromHeatmaps │ │ ├── .gitignore │ │ ├── 09_KeyPointsFromHeatmaps.csproj │ │ ├── CopyOpenPose.sh │ │ ├── Program.cs │ │ ├── README.md │ │ ├── SymlinkBinary.bat │ │ └── images │ │ │ └── example_turorial_9.png │ ├── 10_AsynchronousCustomInput │ │ ├── .gitignore │ │ ├── 10_AsynchronousCustomInput.csproj │ │ ├── CopyOpenPose.sh │ │ ├── Program.cs │ │ ├── README.md │ │ ├── SymlinkBinary.bat │ │ ├── UserInputClass.cs │ │ └── images │ │ │ └── example_turorial_6.gif │ ├── 11_AsynchronousCustomOutput │ │ ├── .gitignore │ │ ├── 11_AsynchronousCustomOutput.csproj │ │ ├── CopyOpenPose.sh │ │ ├── Program.cs │ │ ├── README.md │ │ ├── SymlinkBinary.bat │ │ ├── UserOutputClass.cs │ │ └── images │ │ │ └── example_turorial_7.gif │ ├── 12_AsynchronousCustomInputOutputAndDatum │ │ ├── .gitignore │ │ ├── 12_AsynchronousCustomInputOutputAndDatum.csproj │ │ ├── CopyOpenPose.sh │ │ ├── Program.cs │ │ ├── README.md │ │ ├── SymlinkBinary.bat │ │ ├── UserInputClass.cs │ │ ├── UserOutputClass.cs │ │ └── images │ │ │ └── example_turorial_8.gif │ ├── 13_SynchronousCustomInput │ │ ├── .gitignore │ │ ├── 13_SynchronousCustomInput.csproj │ │ ├── CopyOpenPose.sh │ │ ├── Program.cs │ │ ├── README.md │ │ ├── SymlinkBinary.bat │ │ ├── WUserInput.cs │ │ └── images │ │ │ └── example_turorial_11.gif │ ├── 14_SynchronousCustomPreProcessing │ │ ├── .gitignore │ │ ├── 14_SynchronousCustomPreProcessing.csproj │ │ ├── CopyOpenPose.sh │ │ ├── Program.cs │ │ ├── README.md │ │ ├── SymlinkBinary.bat │ │ └── WUserPreProcessing.cs │ ├── 15_SynchronousCustomPostProcessing │ │ ├── .gitignore │ │ ├── 15_SynchronousCustomPostProcessing.csproj │ │ ├── CopyOpenPose.sh │ │ ├── Program.cs │ │ ├── README.md │ │ ├── SymlinkBinary.bat │ │ └── WUserPostProcessing.cs │ ├── 16_SynchronousCustomOutput │ │ ├── .gitignore │ │ ├── 16_SynchronousCustomOutput.csproj │ │ ├── CopyOpenPose.sh │ │ ├── Program.cs │ │ ├── README.md │ │ ├── SymlinkBinary.bat │ │ └── WUserOutput.cs │ └── 17_SynchronousCustomAllAndDatum │ │ ├── .gitignore │ │ ├── 17_SynchronousCustomAllAndDatum.csproj │ │ ├── CopyOpenPose.sh │ │ ├── Program.cs │ │ ├── README.md │ │ ├── SymlinkBinary.bat │ │ ├── WUserInput.cs │ │ ├── WUserOutput.cs │ │ ├── WUserPostProcessing.cs │ │ └── images │ │ └── example_turorial_15.gif └── TutorialApiThread │ ├── 1_ThreadUserProcessingFunction │ ├── .gitignore │ ├── 1_ThreadUserProcessingFunction.csproj │ ├── CopyOpenPose.sh │ ├── Program.cs │ ├── README.md │ ├── SymlinkBinary.bat │ ├── WUserClass.cs │ └── video.avi │ └── 2_ThreadUserInputProcessingOutputAndDatum │ ├── .gitignore │ ├── 2_ThreadUserInputProcessingOutputAndDatum.csproj │ ├── CopyOpenPose.sh │ ├── Program.cs │ ├── README.md │ ├── SymlinkBinary.bat │ ├── WUserInput.cs │ ├── WUserOutput.cs │ ├── WUserPostProcessing.cs │ └── images │ └── example_turorial_2.gif ├── images └── example_turorial_1.png ├── nuget ├── BuildNuspec.bat ├── BuildUtils.ps1 ├── BuildWindows.ps1 ├── OpenPoseDotNet.nuspec ├── artifacts │ ├── .gitignore │ ├── cpu │ │ └── runtimes │ │ │ ├── centos-x64 │ │ │ ├── lib │ │ │ │ └── .keepfolder │ │ │ └── native │ │ │ │ └── .keepfolder │ │ │ ├── linux-x64 │ │ │ ├── lib │ │ │ │ └── .keepfolder │ │ │ └── native │ │ │ │ └── .keepfolder │ │ │ ├── osx-x64 │ │ │ ├── lib │ │ │ │ └── .keepfolder │ │ │ └── native │ │ │ │ └── .keepfolder │ │ │ ├── win-x64 │ │ │ ├── lib │ │ │ │ └── .keepfolder │ │ │ └── native │ │ │ │ └── .keepfolder │ │ │ └── win-x86 │ │ │ ├── lib │ │ │ └── .keepfolder │ │ │ └── native │ │ │ └── .keepfolder │ ├── cuda-100 │ │ └── runtimes │ │ │ ├── centos-x64 │ │ │ ├── lib │ │ │ │ └── .keepfolder │ │ │ └── native │ │ │ │ └── .keepfolder │ │ │ ├── linux-x64 │ │ │ ├── lib │ │ │ │ └── .keepfolder │ │ │ └── native │ │ │ │ └── .keepfolder │ │ │ ├── osx-x64 │ │ │ ├── lib │ │ │ │ └── .keepfolder │ │ │ └── native │ │ │ │ └── .keepfolder │ │ │ └── win-x64 │ │ │ ├── lib │ │ │ └── .keepfolder │ │ │ └── native │ │ │ └── .keepfolder │ ├── cuda-101 │ │ └── runtimes │ │ │ ├── centos-x64 │ │ │ ├── lib │ │ │ │ └── .keepfolder │ │ │ └── native │ │ │ │ └── .keepfolder │ │ │ ├── linux-x64 │ │ │ ├── lib │ │ │ │ └── .keepfolder │ │ │ └── native │ │ │ │ └── .keepfolder │ │ │ ├── osx-x64 │ │ │ ├── lib │ │ │ │ └── .keepfolder │ │ │ └── native │ │ │ │ └── .keepfolder │ │ │ └── win-x64 │ │ │ ├── lib │ │ │ └── .keepfolder │ │ │ └── native │ │ │ └── .keepfolder │ └── cuda-92 │ │ └── runtimes │ │ ├── centos-x64 │ │ ├── lib │ │ │ └── .keepfolder │ │ └── native │ │ │ └── .keepfolder │ │ ├── linux-x64 │ │ ├── lib │ │ │ └── .keepfolder │ │ └── native │ │ │ └── .keepfolder │ │ ├── osx-x64 │ │ ├── lib │ │ │ └── .keepfolder │ │ └── native │ │ │ └── .keepfolder │ │ └── win-x64 │ │ ├── lib │ │ └── .keepfolder │ │ └── native │ │ └── .keepfolder ├── build │ ├── .keepfolder │ ├── OpenPoseDotNet.Native.props │ └── OpenPoseDotNet.targets ├── pose.png ├── pose128.png ├── pose48.png ├── ref │ ├── .keepfolder │ └── native │ │ └── .keepfolder └── runtimes │ ├── linux-x64 │ ├── lib │ │ └── .keepfolder │ └── native │ │ └── .keepfolder │ ├── osx-x64 │ ├── lib │ │ └── .keepfolder │ └── native │ │ └── .keepfolder │ └── win-x64 │ ├── lib │ └── .keepfolder │ └── native │ └── .keepfolder ├── src ├── BuildLinux.sh ├── BuildMacOSX.sh ├── OpenPoseDotNet.Native │ ├── Build.ps1 │ ├── BuildLinux.sh │ ├── BuildMacOSX.sh │ ├── CMakeLists.txt │ ├── openpose │ │ ├── 3d │ │ │ ├── CameraParameterReader.cpp │ │ │ └── CameraParameterReader.h │ │ ├── 3rdparty │ │ │ └── opencv │ │ │ │ ├── MatExpr.cpp │ │ │ │ ├── MatExpr.h │ │ │ │ ├── cv.cpp │ │ │ │ ├── cv.h │ │ │ │ ├── mat.cpp │ │ │ │ └── mat.h │ │ ├── core │ │ │ ├── Matrix.cpp │ │ │ ├── Matrix.h │ │ │ ├── array.cpp │ │ │ ├── array.h │ │ │ ├── cvMatToOpInput.cpp │ │ │ ├── cvMatToOpInput.h │ │ │ ├── cvMatToOpOutput.cpp │ │ │ ├── cvMatToOpOutput.h │ │ │ ├── datum.cpp │ │ │ ├── datum.h │ │ │ ├── macros.cpp │ │ │ ├── macros.h │ │ │ ├── opOutputToCvMat.cpp │ │ │ ├── opOutputToCvMat.h │ │ │ ├── point.cpp │ │ │ ├── point.h │ │ │ ├── rectangle.cpp │ │ │ ├── rectangle.h │ │ │ ├── scaleAndSizeExtractor.cpp │ │ │ └── scaleAndSizeExtractor.h │ │ ├── cstd │ │ │ ├── string.cpp │ │ │ └── string.h │ │ ├── custom │ │ │ ├── custom.cpp │ │ │ ├── custom.h │ │ │ ├── customDatum.cpp │ │ │ └── customDatum.h │ │ ├── defines.h │ │ ├── export.h │ │ ├── filestream │ │ │ ├── fileStream.cpp │ │ │ └── fileStream.h │ │ ├── flags.cpp │ │ ├── flags.h │ │ ├── gpu │ │ │ ├── gpu.cpp │ │ │ └── gpu.h │ │ ├── gui │ │ │ ├── frameDisplayer.cpp │ │ │ ├── frameDisplayer.h │ │ │ ├── gui.cpp │ │ │ ├── gui.h │ │ │ ├── wGui.cpp │ │ │ └── wGui.h │ │ ├── pose │ │ │ ├── poseCpuRenderer.cpp │ │ │ ├── poseCpuRenderer.h │ │ │ ├── poseExtractorCaffe.cpp │ │ │ ├── poseExtractorCaffe.h │ │ │ ├── poseExtractorNet.cpp │ │ │ ├── poseExtractorNet.h │ │ │ ├── poseGpuRenderer.cpp │ │ │ ├── poseGpuRenderer.h │ │ │ ├── poseParameters.cpp │ │ │ ├── poseParameters.h │ │ │ ├── poseRenderer.cpp │ │ │ └── poseRenderer.h │ │ ├── producer │ │ │ ├── datumProducer.cpp │ │ │ ├── datumProducer.h │ │ │ ├── producer.cpp │ │ │ ├── producer.h │ │ │ ├── videoCaptureReader.cpp │ │ │ ├── videoCaptureReader.h │ │ │ ├── wDatumProducer.cpp │ │ │ ├── wDatumProducer.h │ │ │ ├── webcamReader.cpp │ │ │ └── webcamReader.h │ │ ├── shared.h │ │ ├── std │ │ │ ├── array.cpp │ │ │ ├── array.h │ │ │ ├── chrono │ │ │ │ ├── time_point.cpp │ │ │ │ └── time_point.h │ │ │ ├── shared_ptr.cpp │ │ │ ├── shared_ptr.h │ │ │ ├── string.cpp │ │ │ ├── string.h │ │ │ ├── vector.cpp │ │ │ └── vector.h │ │ ├── thread │ │ │ ├── threadManager.cpp │ │ │ └── threadManager.h │ │ ├── user │ │ │ ├── user.cpp │ │ │ ├── user.h │ │ │ ├── userWorker.cpp │ │ │ ├── userWorker.h │ │ │ ├── userWorkerConsumer.cpp │ │ │ ├── userWorkerConsumer.h │ │ │ ├── userWorkerProducer.cpp │ │ │ └── userWorkerProducer.h │ │ ├── utilities │ │ │ ├── check.cpp │ │ │ ├── check.h │ │ │ ├── errorAndLog.cpp │ │ │ ├── errorAndLog.h │ │ │ ├── flagsToOpenPose.cpp │ │ │ ├── flagsToOpenPose.h │ │ │ ├── profiler.cpp │ │ │ └── profiler.h │ │ └── wrapper │ │ │ ├── wrapper.cpp │ │ │ ├── wrapper.h │ │ │ ├── wrapperStructExtra.cpp │ │ │ ├── wrapperStructExtra.h │ │ │ ├── wrapperStructFace.cpp │ │ │ ├── wrapperStructFace.h │ │ │ ├── wrapperStructGui.cpp │ │ │ ├── wrapperStructGui.h │ │ │ ├── wrapperStructHand.cpp │ │ │ ├── wrapperStructHand.h │ │ │ ├── wrapperStructInput.cpp │ │ │ ├── wrapperStructInput.h │ │ │ ├── wrapperStructOutput.cpp │ │ │ ├── wrapperStructOutput.h │ │ │ ├── wrapperStructPose.cpp │ │ │ └── wrapperStructPose.h │ └── version.rc.in └── OpenPoseDotNet │ ├── 3D │ └── CameraParameterReader.cs │ ├── Core │ ├── Array.cs │ ├── CvMatToOpInput.cs │ ├── CvMatToOpOutput.cs │ ├── Datum.cs │ ├── HeatMapType.cs │ ├── Macros.cs │ ├── Matrix.cs │ ├── OpOutputToCvMat.cs │ ├── OpenPose.cs │ ├── Point.cs │ ├── Rectangle.cs │ ├── RenderMode.cs │ ├── ScaleAndSizeExtractor.cs │ └── ScaleMode.cs │ ├── Custom │ └── CustomDatum.cs │ ├── Cv.cs │ ├── Cv │ ├── Colormap.cs │ ├── Mat.cs │ ├── MatExpr.cs │ └── MatType.cs │ ├── DatumType.cs │ ├── Face │ └── OpenPose.cs │ ├── FileStream │ ├── DataFormat.cs │ └── OpenPose.cs │ ├── Flags.cs │ ├── Gpu │ ├── GpuMode.cs │ └── OpenPose.cs │ ├── Gui │ ├── DisplayMode.cs │ ├── FrameDisplayer.cs │ ├── FullScreenMode.cs │ ├── Gui.cs │ └── WGui.cs │ ├── Hand │ └── OpenPose.cs │ ├── Helpers │ ├── GenericHelpers.cs │ └── StringHelper.cs │ ├── IOpenPoseObject.cs │ ├── Interop │ └── InteropHelper.cs │ ├── LoadImageFlag.cs │ ├── OpenPose.cs │ ├── OpenPoseDotNet.csproj │ ├── OpenPoseObject.cs │ ├── PInvoke │ ├── 3D │ │ └── CameraParameterReader.cs │ ├── CStd │ │ └── NativeMethods.cs │ ├── Core │ │ ├── CvMatToOpInput.cs │ │ ├── CvMatToOpOutput.cs │ │ ├── Datum.cs │ │ ├── Macros.cs │ │ ├── Matrix.cs │ │ ├── NativeMethods.cs │ │ ├── OpOutputToCvMat.cs │ │ └── ScaleAndSizeExtractor.cs │ ├── Custom │ │ └── CustomDatum.cs │ ├── Cv.cs │ ├── Cv │ │ ├── Mat.cs │ │ └── MatExpr.cs │ ├── FileStream │ │ └── NativeMethods.cs │ ├── Flags.cs │ ├── Gpu │ │ └── Gpu.cs │ ├── Gui │ │ ├── FrameDisplayer.cs │ │ ├── Gui.cs │ │ └── WGui.cs │ ├── NativeMethods.cs │ ├── Pose │ │ ├── PoseCpuRenderer.cs │ │ ├── PoseExtractorCaffe.cs │ │ ├── PoseExtractorNet.cs │ │ ├── PoseGpuRenderer.cs │ │ └── PoseParameters.cs │ ├── Producer │ │ ├── NativeMethods.cs │ │ ├── Producer.cs │ │ ├── VideoCaptureReader.cs │ │ └── WebcamReader.cs │ ├── StdLib │ │ ├── Chrono │ │ │ └── StdLib.cs │ │ ├── NativeMethods.cs │ │ └── StdLib.cs │ ├── Thread │ │ └── NativeMethods.cs │ ├── User │ │ └── NativeMethods.cs │ ├── Utilities │ │ ├── ConfigureError.cs │ │ ├── ConfigureLog.cs │ │ ├── NativeMethods.cs │ │ └── Profiler.cs │ ├── WindowsLibraryLoader.cs │ └── Wrapper │ │ ├── Wrapper.cs │ │ ├── WrapperStructExtra.cs │ │ ├── WrapperStructFace.cs │ │ ├── WrapperStructGui.cs │ │ ├── WrapperStructHand.cs │ │ ├── WrapperStructInput.cs │ │ ├── WrapperStructOutput.cs │ │ └── WrapperStructPose.cs │ ├── Pose │ ├── IGpuRenderer.cs │ ├── IRenderer.cs │ ├── OpenPose.cs │ ├── PoseBody19BodyPart.cs │ ├── PoseBody23BodyPart.cs │ ├── PoseBody25BBodyPart.cs │ ├── PoseBody25BodyPart.cs │ ├── PoseBody65BodyPart.cs │ ├── PoseBody95BodyPart.cs │ ├── PoseCar12Part.cs │ ├── PoseCar22Part.cs │ ├── PoseCocoBodyPart.cs │ ├── PoseCpuRenderer.cs │ ├── PoseExtractorCaffe.cs │ ├── PoseExtractorNet.cs │ ├── PoseGpuRenderer.cs │ ├── PoseModel.cs │ ├── PoseMpiBodyPart.cs │ ├── PoseParameters.cs │ └── PoseRenderer.cs │ ├── Producer │ ├── ConcreteProducer.cs │ ├── DatumProducer.cs │ ├── OpenPose.cs │ ├── Producer.cs │ ├── ProducerFpsMode.cs │ ├── ProducerType.cs │ ├── VideoCaptureReader.cs │ ├── WDatumProducer.cs │ └── WebcamReader.cs │ ├── StdLib │ ├── Chrono │ │ └── StdTimePoint.cs │ ├── StdArray.cs │ ├── StdLib.cs │ ├── StdSharedPtr.cs │ ├── StdString.cs │ └── StdVector.cs │ ├── Thread │ ├── OpenPose.cs │ ├── ThreadManager.cs │ ├── ThreadManagerMode.cs │ ├── Worker.cs │ ├── WorkerConsumer.cs │ ├── WorkerDelegateMediator.cs │ └── WorkerProducer.cs │ ├── User │ ├── UserWorker.cs │ ├── UserWorkerConsumer.cs │ ├── UserWorkerConsumerDelegateMediator.cs │ ├── UserWorkerDelegateMediator.cs │ ├── UserWorkerProducer.cs │ └── UserWorkerProducerDelegateMediator.cs │ ├── Utilities │ ├── ConfigureError.cs │ ├── ConfigureLog.cs │ ├── ErrorMode.cs │ ├── Extensions.cs │ ├── FileSystem.cs │ ├── LogMode.cs │ ├── OpenPose.cs │ ├── Priority.cs │ └── Profiler.cs │ └── Wrapper │ ├── Detector.cs │ ├── PoseMode.cs │ ├── WorkerType.cs │ ├── Wrapper.cs │ ├── WrapperStructExtra.cs │ ├── WrapperStructFace.cs │ ├── WrapperStructGui.cs │ ├── WrapperStructHand.cs │ ├── WrapperStructInput.cs │ ├── WrapperStructOutput.cs │ └── WrapperStructPose.cs └── test └── OpenPoseDotNet.Tests ├── OpenPoseDotNet.Tests.csproj ├── Properties └── AssemblyInfo.cs ├── Utilities ├── ConfigureErrorTest.cs ├── ConfigureLogTest.cs └── OpenPoseTest.cs ├── Wrapper └── WrapperTest.cs └── packages.config /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "openpose"] 2 | path = src/openpose 3 | url = https://github.com/CMU-Perceptual-Computing-Lab/openpose 4 | ignore = dirty 5 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Takuya Takeuchi 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /examples/OpenPoseDemo/.gitignore: -------------------------------------------------------------------------------- 1 | models 2 | examples -------------------------------------------------------------------------------- /examples/OpenPoseDemo/OpenPoseDemo.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp2.0 6 | Takuya Takeuchi 7 | Takuya Takeuchi 8 | Sample of OpenPoseDotNet 9 | 10 | 11 | 12 | false 13 | false 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /examples/OpenPoseDemo/README.md: -------------------------------------------------------------------------------- 1 | # OpenPose Demo 2 | 3 | ## Quick Start 4 | 5 | #### 1. Build OpenPose 6 | 7 | ````dos 8 | > cd 9 | > BuildWindowsVS2015.bat 10 | ```` 11 | 12 | #### 2. Build OpenPoseDotNet.Native 13 | 14 | ````dos 15 | > cd \src\OpenPoseDotNet.Native 16 | > BuildWindowsVS2015.bat 17 | ```` 18 | 19 | #### 3. Try Tutorial 20 | 21 | ````dos 22 | > cd \examples\OpenPoseDemo 23 | > SymlinkBinary.bat 24 | > dotnet run -c Release 25 | ```` -------------------------------------------------------------------------------- /examples/TutorialAddModule/1_CustomPostProcessing/.gitignore: -------------------------------------------------------------------------------- 1 | models 2 | examples -------------------------------------------------------------------------------- /examples/TutorialAddModule/1_CustomPostProcessing/1_CustomPostProcessing.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp2.0 6 | Takuya Takeuchi 7 | Takuya Takeuchi 8 | Sample of OpenPoseDotNet 9 | 10 | 11 | 12 | false 13 | false 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /examples/TutorialAddModule/1_CustomPostProcessing/README.md: -------------------------------------------------------------------------------- 1 | # Custom Post Processing 2 | 3 | ## Quick Start 4 | 5 | #### 1. Build OpenPose 6 | 7 | ````dos 8 | > cd 9 | > BuildWindowsVS2015.bat 10 | ```` 11 | 12 | #### 2. Build OpenPoseDotNet.Native 13 | 14 | ````dos 15 | > cd \src\OpenPoseDotNet.Native 16 | > BuildWindowsVS2015.bat 17 | ```` 18 | 19 | #### 3. Try Tutorial 20 | 21 | ````dos 22 | > cd \examples\TutorialAddModule\1_CustomPostProcessing 23 | > SymlinkBinary.bat 24 | > dotnet run -c Release 25 | ```` -------------------------------------------------------------------------------- /examples/TutorialAddModule/1_CustomPostProcessing/UserPostProcessing.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using OpenPoseDotNet; 3 | 4 | namespace CustomPostProcessing 5 | { 6 | 7 | internal sealed class UserPostProcessing 8 | { 9 | 10 | #region Methods 11 | 12 | public void InitializationOnThread() 13 | { 14 | try 15 | { 16 | } 17 | catch (Exception e) 18 | { 19 | Console.WriteLine(e.Message); 20 | } 21 | } 22 | 23 | public void DoSomething(Mat output, Mat input) 24 | { 25 | try 26 | { 27 | // Random operation on data 28 | Cv.BitwiseNot(input, output); 29 | } 30 | catch (Exception e) 31 | { 32 | Console.WriteLine(e.Message); 33 | } 34 | } 35 | 36 | #endregion 37 | 38 | } 39 | 40 | } -------------------------------------------------------------------------------- /examples/TutorialApiCpp/01_BodyFromImageDefault/.gitignore: -------------------------------------------------------------------------------- 1 | models 2 | examples -------------------------------------------------------------------------------- /examples/TutorialApiCpp/01_BodyFromImageDefault/01_BodyFromImageDefault.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp2.0 6 | Takuya Takeuchi 7 | Takuya Takeuchi 8 | Sample of OpenPoseDotNet 9 | 10 | 11 | 12 | false 13 | false 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/01_BodyFromImageDefault/CopyOpenPose.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # *************************************** 4 | # Arguments 5 | # $1: Build Configuration (Release/Debug) 6 | # *************************************** 7 | if [ $# -ne 1 ]; then 8 | echo "Error: Specify build configuration [Release/Debug]" 9 | exit 1 10 | fi 11 | 12 | if [ "$(uname)" == 'Darwin' ]; then 13 | echo "Your platform ($(uname -a)) is MacOS." 14 | OpenPoseLibrary='libopenpose.dylib' 15 | OpenPoseDebugLibrary='libopenposed.dylib' 16 | NativeLibrary='libOpenPoseDotNetNative.dylib' 17 | elif [ "$(expr substr $(uname -s) 1 5)" == 'Linux' ]; then 18 | echo "Your platform ($(uname -a)) is Linux." 19 | OpenPoseLibrary='libopenpose.so' 20 | OpenPoseDebugLibrary='libopenposed.so' 21 | NativeLibrary='libOpenPoseDotNetNative.so' 22 | else 23 | echo "Your platform ($(uname -a)) is not supported." 24 | exit 1 25 | fi 26 | 27 | mkdir -p bin/$1/netcoreapp2.0 28 | 29 | if [ $1 = "Release" ]; then 30 | cp ../../../openpose/build/src/openpose/${OpenPoseLibrary} bin/$1/netcoreapp2.0 31 | elif [ $1 = "Debug" ]; then 32 | cp ../../../openpose/build/src/openpose/${OpenPoseDebugLibrary} bin/$1/netcoreapp2.0 33 | fi 34 | 35 | if [ $1 = "Release" ]; then 36 | cp ../../../src/OpenPoseDotNet.Native/build/${NativeLibrary} bin/$1/netcoreapp2.0 37 | elif [ $1 = "Debug" ]; then 38 | cp ../../../src/OpenPoseDotNet.Native/build/${NativeLibrary} bin/$1/netcoreapp2.0 39 | fi 40 | 41 | mkdir -p models/pose/body_25 42 | cp ../../../openpose/models/pose/body_25/pose_deploy.prototxt models/pose/body_25 43 | cp ../../../openpose/models/pose/body_25/pose_iter_584000.caffemodel models/pose/body_25 44 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/01_BodyFromImageDefault/README.md: -------------------------------------------------------------------------------- 1 | # Body From Image Default 2 | 3 | ## Quick Start 4 | 5 | #### 1. Build OpenPose 6 | 7 | ````dos 8 | > cd 9 | > git submodule update --inti --recursive 10 | > cd src\OpenPoseDotNet.Native 11 | > pwsh Build.ps1 64 desktop <2015/2017/2019> <92/100/101> 12 | ```` 13 | 14 | #### 2. Try Tutorial 15 | 16 | ````dos 17 | > cd \examples\TutorialApiCpp\01_BodyFromImageDefault 18 | > SymlinkBinary.bat build_win_desktop__x64 19 | > dotnet run -c Release -i "examples\media\COCO_val2014_000000000192.jpg" 20 | ```` 21 | 22 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/01_BodyFromImageDefault/images/example_turorial_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/examples/TutorialApiCpp/01_BodyFromImageDefault/images/example_turorial_1.png -------------------------------------------------------------------------------- /examples/TutorialApiCpp/01_BodyFromImageDefaultBitmap/.gitignore: -------------------------------------------------------------------------------- 1 | models 2 | examples -------------------------------------------------------------------------------- /examples/TutorialApiCpp/01_BodyFromImageDefaultBitmap/01_BodyFromImageDefaultBitmap.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp2.0 6 | Takuya Takeuchi 7 | Takuya Takeuchi 8 | Sample of OpenPoseDotNet 9 | 10 | 11 | 12 | false 13 | true 14 | 15 | 16 | 17 | true 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/01_BodyFromImageDefaultBitmap/CopyOpenPose.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # *************************************** 4 | # Arguments 5 | # $1: Build Configuration (Release/Debug) 6 | # *************************************** 7 | if [ $# -ne 1 ]; then 8 | echo "Error: Specify build configuration [Release/Debug]" 9 | exit 1 10 | fi 11 | 12 | if [ "$(uname)" == 'Darwin' ]; then 13 | echo "Your platform ($(uname -a)) is MacOS." 14 | OpenPoseLibrary='libopenpose.dylib' 15 | OpenPoseDebugLibrary='libopenposed.dylib' 16 | NativeLibrary='libOpenPoseDotNetNative.dylib' 17 | elif [ "$(expr substr $(uname -s) 1 5)" == 'Linux' ]; then 18 | echo "Your platform ($(uname -a)) is Linux." 19 | OpenPoseLibrary='libopenpose.so' 20 | OpenPoseDebugLibrary='libopenposed.so' 21 | NativeLibrary='libOpenPoseDotNetNative.so' 22 | else 23 | echo "Your platform ($(uname -a)) is not supported." 24 | exit 1 25 | fi 26 | 27 | mkdir -p bin/$1/netcoreapp2.0 28 | 29 | if [ $1 = "Release" ]; then 30 | cp ../../../openpose/build/src/openpose/${OpenPoseLibrary} bin/$1/netcoreapp2.0 31 | elif [ $1 = "Debug" ]; then 32 | cp ../../../openpose/build/src/openpose/${OpenPoseDebugLibrary} bin/$1/netcoreapp2.0 33 | fi 34 | 35 | if [ $1 = "Release" ]; then 36 | cp ../../../src/OpenPoseDotNet.Native/build/${NativeLibrary} bin/$1/netcoreapp2.0 37 | elif [ $1 = "Debug" ]; then 38 | cp ../../../src/OpenPoseDotNet.Native/build/${NativeLibrary} bin/$1/netcoreapp2.0 39 | fi 40 | 41 | mkdir -p models/pose/body_25 42 | cp ../../../openpose/models/pose/body_25/pose_deploy.prototxt models/pose/body_25 43 | cp ../../../openpose/models/pose/body_25/pose_iter_584000.caffemodel models/pose/body_25 44 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/01_BodyFromImageDefaultBitmap/README.md: -------------------------------------------------------------------------------- 1 | # Body From Image Default Bitmap 2 | 3 | ## Quick Start 4 | 5 | #### 1. Build OpenPose 6 | 7 | ````dos 8 | > cd 9 | > BuildWindowsVS2015.bat 10 | ```` 11 | 12 | #### 2. Build OpenPoseDotNet.Native 13 | 14 | ````dos 15 | > cd \src\OpenPoseDotNet.Native 16 | > BuildWindowsVS2015.bat 17 | ```` 18 | 19 | #### 3. Try Tutorial 20 | 21 | ````dos 22 | > cd \examples\TutorialApiCpp\01_BodyFromImageDefaultBitmap 23 | > SymlinkBinary.bat 24 | > dotnet run -c Release -i "examples\media\COCO_val2014_000000000192.jpg" 25 | ```` 26 | 27 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/01_BodyFromImageDefaultBitmap/images/example_turorial_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/examples/TutorialApiCpp/01_BodyFromImageDefaultBitmap/images/example_turorial_1.png -------------------------------------------------------------------------------- /examples/TutorialApiCpp/01_BodyFromImageDefaultRawImage/.gitignore: -------------------------------------------------------------------------------- 1 | models 2 | examples -------------------------------------------------------------------------------- /examples/TutorialApiCpp/01_BodyFromImageDefaultRawImage/01_BodyFromImageDefaultRawImage.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp2.0 6 | Takuya Takeuchi 7 | Takuya Takeuchi 8 | Sample of OpenPoseDotNet 9 | 10 | 11 | 12 | false 13 | true 14 | 15 | 16 | 17 | true 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/01_BodyFromImageDefaultRawImage/CopyOpenPose.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # *************************************** 4 | # Arguments 5 | # $1: Build Configuration (Release/Debug) 6 | # *************************************** 7 | if [ $# -ne 1 ]; then 8 | echo "Error: Specify build configuration [Release/Debug]" 9 | exit 1 10 | fi 11 | 12 | if [ "$(uname)" == 'Darwin' ]; then 13 | echo "Your platform ($(uname -a)) is MacOS." 14 | OpenPoseLibrary='libopenpose.dylib' 15 | OpenPoseDebugLibrary='libopenposed.dylib' 16 | NativeLibrary='libOpenPoseDotNetNative.dylib' 17 | elif [ "$(expr substr $(uname -s) 1 5)" == 'Linux' ]; then 18 | echo "Your platform ($(uname -a)) is Linux." 19 | OpenPoseLibrary='libopenpose.so' 20 | OpenPoseDebugLibrary='libopenposed.so' 21 | NativeLibrary='libOpenPoseDotNetNative.so' 22 | else 23 | echo "Your platform ($(uname -a)) is not supported." 24 | exit 1 25 | fi 26 | 27 | mkdir -p bin/$1/netcoreapp2.0 28 | 29 | if [ $1 = "Release" ]; then 30 | cp ../../../openpose/build/src/openpose/${OpenPoseLibrary} bin/$1/netcoreapp2.0 31 | elif [ $1 = "Debug" ]; then 32 | cp ../../../openpose/build/src/openpose/${OpenPoseDebugLibrary} bin/$1/netcoreapp2.0 33 | fi 34 | 35 | if [ $1 = "Release" ]; then 36 | cp ../../../src/OpenPoseDotNet.Native/build/${NativeLibrary} bin/$1/netcoreapp2.0 37 | elif [ $1 = "Debug" ]; then 38 | cp ../../../src/OpenPoseDotNet.Native/build/${NativeLibrary} bin/$1/netcoreapp2.0 39 | fi 40 | 41 | mkdir -p models/pose/body_25 42 | cp ../../../openpose/models/pose/body_25/pose_deploy.prototxt models/pose/body_25 43 | cp ../../../openpose/models/pose/body_25/pose_iter_584000.caffemodel models/pose/body_25 44 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/01_BodyFromImageDefaultRawImage/README.md: -------------------------------------------------------------------------------- 1 | # Body From Image Default Raw Image data 2 | 3 | ## Quick Start 4 | 5 | #### 1. Build OpenPose 6 | 7 | ````dos 8 | > cd 9 | > BuildWindowsVS2015.bat 10 | ```` 11 | 12 | #### 2. Build OpenPoseDotNet.Native 13 | 14 | ````dos 15 | > cd \src\OpenPoseDotNet.Native 16 | > BuildWindowsVS2015.bat 17 | ```` 18 | 19 | #### 3. Try Tutorial 20 | 21 | ````dos 22 | > cd \examples\TutorialApiCpp\01_BodyFromImageDefaultRawImage 23 | > SymlinkBinary.bat 24 | > dotnet run -c Release -i "examples\media\COCO_val2014_000000000192.jpg" 25 | ```` 26 | 27 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/01_BodyFromImageDefaultRawImage/images/example_turorial_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/examples/TutorialApiCpp/01_BodyFromImageDefaultRawImage/images/example_turorial_1.png -------------------------------------------------------------------------------- /examples/TutorialApiCpp/02_WholeBodyFromImageDefault/.gitignore: -------------------------------------------------------------------------------- 1 | models 2 | examples -------------------------------------------------------------------------------- /examples/TutorialApiCpp/02_WholeBodyFromImageDefault/02_WholeBodyFromImageDefault.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp2.0 6 | Takuya Takeuchi 7 | Takuya Takeuchi 8 | Sample of OpenPoseDotNet 9 | 10 | 11 | 12 | false 13 | false 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/02_WholeBodyFromImageDefault/README.md: -------------------------------------------------------------------------------- 1 | # Whole Body From Image Default 2 | 3 | ## Quick Start 4 | 5 | #### 1. Build OpenPose 6 | 7 | ````dos 8 | > cd 9 | > BuildWindowsVS2015.bat 10 | ```` 11 | 12 | #### 2. Build OpenPoseDotNet.Native 13 | 14 | ````dos 15 | > cd \src\OpenPoseDotNet.Native 16 | > BuildWindowsVS2015.bat 17 | ```` 18 | 19 | #### 3. Try Tutorial 20 | 21 | ````dos 22 | > cd \examples\TutorialApiCpp\02_WholeBodyFromImageDefault 23 | > SymlinkBinary.bat 24 | > dotnet run -c Release -i "examples\media\COCO_val2014_000000000241.jpg" 25 | ```` 26 | 27 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/02_WholeBodyFromImageDefault/images/example_turorial_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/examples/TutorialApiCpp/02_WholeBodyFromImageDefault/images/example_turorial_2.png -------------------------------------------------------------------------------- /examples/TutorialApiCpp/03_KeyPointsFromImage/.gitignore: -------------------------------------------------------------------------------- 1 | models 2 | examples -------------------------------------------------------------------------------- /examples/TutorialApiCpp/03_KeyPointsFromImage/03_KeyPointsFromImage.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp2.0 6 | Takuya Takeuchi 7 | Takuya Takeuchi 8 | Sample of OpenPoseDotNet 9 | 10 | 11 | 12 | false 13 | false 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/03_KeyPointsFromImage/README.md: -------------------------------------------------------------------------------- 1 | # KeyPoints From Image 2 | 3 | ## Quick Start 4 | 5 | #### 1. Build OpenPose 6 | 7 | ````dos 8 | > cd 9 | > BuildWindowsVS2015.bat 10 | ```` 11 | 12 | #### 2. Build OpenPoseDotNet.Native 13 | 14 | ````dos 15 | > cd \src\OpenPoseDotNet.Native 16 | > BuildWindowsVS2015.bat 17 | ```` 18 | 19 | #### 3. Try Tutorial 20 | 21 | ````dos 22 | > cd \examples\TutorialApiCpp\03_KeyPointsFromImage 23 | > SymlinkBinary.bat 24 | > dotnet run -c Release -i "examples\media\COCO_val2014_000000000294.jpg" 25 | ```` 26 | 27 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/03_KeyPointsFromImage/images/example_turorial_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/examples/TutorialApiCpp/03_KeyPointsFromImage/images/example_turorial_3.png -------------------------------------------------------------------------------- /examples/TutorialApiCpp/04_KeyPointsFromImages/.gitignore: -------------------------------------------------------------------------------- 1 | models 2 | examples -------------------------------------------------------------------------------- /examples/TutorialApiCpp/04_KeyPointsFromImages/04_KeyPointsFromImages.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp2.0 6 | Takuya Takeuchi 7 | Takuya Takeuchi 8 | Sample of OpenPoseDotNet 9 | 10 | 11 | 12 | false 13 | false 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/04_KeyPointsFromImages/README.md: -------------------------------------------------------------------------------- 1 | # KeyPoints From Images 2 | 3 | ## Quick Start 4 | 5 | #### 1. Build OpenPose 6 | 7 | ````dos 8 | > cd 9 | > BuildWindowsVS2015.bat 10 | ```` 11 | 12 | #### 2. Build OpenPoseDotNet.Native 13 | 14 | ````dos 15 | > cd \src\OpenPoseDotNet.Native 16 | > BuildWindowsVS2015.bat 17 | ```` 18 | 19 | #### 3. Try Tutorial 20 | 21 | ````dos 22 | > cd \examples\TutorialApiCpp\04_KeyPointsFromImages 23 | > SymlinkBinary.bat 24 | > dotnet run -c Release -i "examples\media" 25 | ```` 26 | 27 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/04_KeyPointsFromImages/images/example_turorial_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/examples/TutorialApiCpp/04_KeyPointsFromImages/images/example_turorial_4.gif -------------------------------------------------------------------------------- /examples/TutorialApiCpp/05_KeyPointsFromImagesMultiGPU/.gitignore: -------------------------------------------------------------------------------- 1 | models 2 | examples -------------------------------------------------------------------------------- /examples/TutorialApiCpp/05_KeyPointsFromImagesMultiGPU/05_KeyPointsFromImagesMultiGPU.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp2.0 6 | Takuya Takeuchi 7 | Takuya Takeuchi 8 | Sample of OpenPoseDotNet 9 | 10 | 11 | 12 | false 13 | false 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/05_KeyPointsFromImagesMultiGPU/README.md: -------------------------------------------------------------------------------- 1 | # KeyPoints From Images Multi GPU 2 | 3 | ## Quick Start 4 | 5 | #### 1. Build OpenPose 6 | 7 | ````dos 8 | > cd 9 | > BuildWindowsVS2015.bat 10 | ```` 11 | 12 | #### 2. Build OpenPoseDotNet.Native 13 | 14 | ````dos 15 | > cd \src\OpenPoseDotNet.Native 16 | > BuildWindowsVS2015.bat 17 | ```` 18 | 19 | #### 3. Try Tutorial 20 | 21 | ````dos 22 | > cd \examples\TutorialApiCpp\05_KeyPointsFromImagesMultiGPU 23 | > SymlinkBinary.bat 24 | > dotnet run -c Release -i "examples\media" 25 | ```` 26 | 27 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/05_KeyPointsFromImagesMultiGPU/images/example_turorial_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/examples/TutorialApiCpp/05_KeyPointsFromImagesMultiGPU/images/example_turorial_5.gif -------------------------------------------------------------------------------- /examples/TutorialApiCpp/06_FaceFromImage/.gitignore: -------------------------------------------------------------------------------- 1 | models 2 | examples -------------------------------------------------------------------------------- /examples/TutorialApiCpp/06_FaceFromImage/06_FaceFromImage.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp2.0 6 | Takuya Takeuchi 7 | Takuya Takeuchi 8 | Sample of OpenPoseDotNet 9 | 10 | 11 | 12 | false 13 | false 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/06_FaceFromImage/README.md: -------------------------------------------------------------------------------- 1 | # Face From Image 2 | 3 | ## Quick Start 4 | 5 | #### 1. Build OpenPose 6 | 7 | ````dos 8 | > cd 9 | > BuildWindowsVS2015.bat 10 | ```` 11 | 12 | #### 2. Build OpenPoseDotNet.Native 13 | 14 | ````dos 15 | > cd \src\OpenPoseDotNet.Native 16 | > BuildWindowsVS2015.bat 17 | ```` 18 | 19 | #### 3. Try Tutorial 20 | 21 | ````dos 22 | > cd \examples\TutorialApiCpp\06_FaceFromImage 23 | > SymlinkBinary.bat 24 | > dotnet run -c Release -i "examples\media\COCO_val2014_000000000241.jpg" 25 | ```` 26 | 27 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/06_FaceFromImage/images/example_turorial_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/examples/TutorialApiCpp/06_FaceFromImage/images/example_turorial_9.png -------------------------------------------------------------------------------- /examples/TutorialApiCpp/07_HandFromImage/.gitignore: -------------------------------------------------------------------------------- 1 | models 2 | examples -------------------------------------------------------------------------------- /examples/TutorialApiCpp/07_HandFromImage/07_HandFromImage.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp2.0 6 | Takuya Takeuchi 7 | Takuya Takeuchi 8 | Sample of OpenPoseDotNet 9 | 10 | 11 | 12 | false 13 | false 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/07_HandFromImage/README.md: -------------------------------------------------------------------------------- 1 | # Hand From Image 2 | 3 | ## Quick Start 4 | 5 | #### 1. Build OpenPose 6 | 7 | ````dos 8 | > cd 9 | > BuildWindowsVS2015.bat 10 | ```` 11 | 12 | #### 2. Build OpenPoseDotNet.Native 13 | 14 | ````dos 15 | > cd \src\OpenPoseDotNet.Native 16 | > BuildWindowsVS2015.bat 17 | ```` 18 | 19 | #### 3. Try Tutorial 20 | 21 | ````dos 22 | > cd \examples\TutorialApiCpp\07_HandFromImage 23 | > SymlinkBinary.bat 24 | > dotnet run -c Release -i "examples\media\COCO_val2014_000000000241.jpg" 25 | ```` 26 | 27 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/07_HandFromImage/images/example_turorial_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/examples/TutorialApiCpp/07_HandFromImage/images/example_turorial_10.png -------------------------------------------------------------------------------- /examples/TutorialApiCpp/08_HeatmapsFromImage/.gitignore: -------------------------------------------------------------------------------- 1 | models 2 | examples -------------------------------------------------------------------------------- /examples/TutorialApiCpp/08_HeatmapsFromImage/08_HeatmapsFromImage.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp2.0 6 | Takuya Takeuchi 7 | Takuya Takeuchi 8 | Sample of OpenPoseDotNet 9 | 10 | 11 | 12 | false 13 | false 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/08_HeatmapsFromImage/README.md: -------------------------------------------------------------------------------- 1 | # Heatmaps From Image 2 | 3 | ## Quick Start 4 | 5 | #### 1. Build OpenPose 6 | 7 | ````dos 8 | > cd 9 | > BuildWindowsVS2015.bat 10 | ```` 11 | 12 | #### 2. Build OpenPoseDotNet.Native 13 | 14 | ````dos 15 | > cd \src\OpenPoseDotNet.Native 16 | > BuildWindowsVS2015.bat 17 | ```` 18 | 19 | #### 3. Try Tutorial 20 | 21 | ````dos 22 | > cd \examples\TutorialApiCpp\08_HeatmapsFromImage 23 | > SymlinkBinary.bat 24 | > dotnet run -c Release -i "examples\media\COCO_val2014_000000000294.jpg" 25 | ```` 26 | 27 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/08_HeatmapsFromImage/images/example_turorial_8.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/examples/TutorialApiCpp/08_HeatmapsFromImage/images/example_turorial_8.gif -------------------------------------------------------------------------------- /examples/TutorialApiCpp/09_KeyPointsFromHeatmaps/.gitignore: -------------------------------------------------------------------------------- 1 | models 2 | examples -------------------------------------------------------------------------------- /examples/TutorialApiCpp/09_KeyPointsFromHeatmaps/09_KeyPointsFromHeatmaps.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp2.0 6 | Takuya Takeuchi 7 | Takuya Takeuchi 8 | Sample of OpenPoseDotNet 9 | 10 | 11 | 12 | false 13 | false 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/09_KeyPointsFromHeatmaps/README.md: -------------------------------------------------------------------------------- 1 | # KeyPoints From Heatmaps 2 | 3 | ## Quick Start 4 | 5 | #### 1. Build OpenPose 6 | 7 | ````dos 8 | > cd 9 | > BuildWindowsVS2015.bat 10 | ```` 11 | 12 | #### 2. Build OpenPoseDotNet.Native 13 | 14 | ````dos 15 | > cd \src\OpenPoseDotNet.Native 16 | > BuildWindowsVS2015.bat 17 | ```` 18 | 19 | #### 3. Try Tutorial 20 | 21 | ````dos 22 | > cd \examples\TutorialApiCpp\09_KeyPointsFromHeatmaps 23 | > SymlinkBinary.bat 24 | > dotnet run -c Release -i "examples\media\COCO_val2014_000000000294.jpg" 25 | ```` 26 | 27 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/09_KeyPointsFromHeatmaps/images/example_turorial_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/examples/TutorialApiCpp/09_KeyPointsFromHeatmaps/images/example_turorial_9.png -------------------------------------------------------------------------------- /examples/TutorialApiCpp/10_AsynchronousCustomInput/.gitignore: -------------------------------------------------------------------------------- 1 | models 2 | examples -------------------------------------------------------------------------------- /examples/TutorialApiCpp/10_AsynchronousCustomInput/10_AsynchronousCustomInput.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp2.0 6 | Takuya Takeuchi 7 | Takuya Takeuchi 8 | Sample of OpenPoseDotNet 9 | 10 | 11 | 12 | false 13 | false 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/10_AsynchronousCustomInput/README.md: -------------------------------------------------------------------------------- 1 | # Asynchronous Custom Input 2 | 3 | ## Quick Start 4 | 5 | #### 1. Build OpenPose 6 | 7 | ````dos 8 | > cd 9 | > BuildWindowsVS2015.bat 10 | ```` 11 | 12 | #### 2. Build OpenPoseDotNet.Native 13 | 14 | ````dos 15 | > cd \src\OpenPoseDotNet.Native 16 | > BuildWindowsVS2015.bat 17 | ```` 18 | 19 | #### 3. Try Tutorial 20 | 21 | ````dos 22 | > cd \examples\TutorialApiCpp\10_AsynchronousCustomInput 23 | > SymlinkBinary.bat 24 | > dotnet run -c Release 25 | ```` 26 | 27 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/10_AsynchronousCustomInput/images/example_turorial_6.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/examples/TutorialApiCpp/10_AsynchronousCustomInput/images/example_turorial_6.gif -------------------------------------------------------------------------------- /examples/TutorialApiCpp/11_AsynchronousCustomOutput/.gitignore: -------------------------------------------------------------------------------- 1 | models 2 | examples -------------------------------------------------------------------------------- /examples/TutorialApiCpp/11_AsynchronousCustomOutput/11_AsynchronousCustomOutput.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp2.0 6 | Takuya Takeuchi 7 | Takuya Takeuchi 8 | Sample of OpenPoseDotNet 9 | 10 | 11 | 12 | false 13 | false 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/11_AsynchronousCustomOutput/README.md: -------------------------------------------------------------------------------- 1 | # Asynchronous Custom Output 2 | 3 | ## Quick Start 4 | 5 | #### 1. Build OpenPose 6 | 7 | ````dos 8 | > cd 9 | > BuildWindowsVS2015.bat 10 | ```` 11 | 12 | #### 2. Build OpenPoseDotNet.Native 13 | 14 | ````dos 15 | > cd \src\OpenPoseDotNet.Native 16 | > BuildWindowsVS2015.bat 17 | ```` 18 | 19 | #### 3. Try Tutorial 20 | 21 | ````dos 22 | > cd \examples\TutorialApiCpp\11_AsynchronousCustomOutput 23 | > SymlinkBinary.bat 24 | > dotnet run -c Release -i "examples\media" 25 | ```` 26 | 27 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/11_AsynchronousCustomOutput/images/example_turorial_7.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/examples/TutorialApiCpp/11_AsynchronousCustomOutput/images/example_turorial_7.gif -------------------------------------------------------------------------------- /examples/TutorialApiCpp/12_AsynchronousCustomInputOutputAndDatum/.gitignore: -------------------------------------------------------------------------------- 1 | models 2 | examples -------------------------------------------------------------------------------- /examples/TutorialApiCpp/12_AsynchronousCustomInputOutputAndDatum/12_AsynchronousCustomInputOutputAndDatum.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp2.0 6 | Takuya Takeuchi 7 | Takuya Takeuchi 8 | Sample of OpenPoseDotNet 9 | 10 | 11 | 12 | false 13 | false 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/12_AsynchronousCustomInputOutputAndDatum/README.md: -------------------------------------------------------------------------------- 1 | # Asynchronous Custom Input Output And Datum 2 | 3 | ## Quick Start 4 | 5 | #### 1. Build OpenPose 6 | 7 | ````dos 8 | > cd 9 | > BuildWindowsVS2015.bat 10 | ```` 11 | 12 | #### 2. Build OpenPoseDotNet.Native 13 | 14 | ````dos 15 | > cd \src\OpenPoseDotNet.Native 16 | > BuildWindowsVS2015.bat 17 | ```` 18 | 19 | #### 3. Try Tutorial 20 | 21 | ````dos 22 | > cd \examples\TutorialApiCpp\12_AsynchronousCustomInputOutputAndDatum 23 | > SymlinkBinary.bat 24 | > dotnet run -c Release -i "examples\media" 25 | ```` 26 | 27 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/12_AsynchronousCustomInputOutputAndDatum/images/example_turorial_8.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/examples/TutorialApiCpp/12_AsynchronousCustomInputOutputAndDatum/images/example_turorial_8.gif -------------------------------------------------------------------------------- /examples/TutorialApiCpp/13_SynchronousCustomInput/.gitignore: -------------------------------------------------------------------------------- 1 | models 2 | examples -------------------------------------------------------------------------------- /examples/TutorialApiCpp/13_SynchronousCustomInput/13_SynchronousCustomInput.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp2.0 6 | Takuya Takeuchi 7 | Takuya Takeuchi 8 | Sample of OpenPoseDotNet 9 | 10 | 11 | 12 | false 13 | false 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/13_SynchronousCustomInput/README.md: -------------------------------------------------------------------------------- 1 | # Synchronous Custom Input 2 | 3 | ## Quick Start 4 | 5 | #### 1. Build OpenPose 6 | 7 | ````dos 8 | > cd 9 | > BuildWindowsVS2015.bat 10 | ```` 11 | 12 | #### 2. Build OpenPoseDotNet.Native 13 | 14 | ````dos 15 | > cd \src\OpenPoseDotNet.Native 16 | > BuildWindowsVS2015.bat 17 | ```` 18 | 19 | #### 3. Try Tutorial 20 | 21 | ````dos 22 | > cd \examples\TutorialApiCpp\13_SynchronousCustomInput 23 | > SymlinkBinary.bat 24 | > dotnet run -c Release -i "examples\media" 25 | ```` 26 | 27 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/13_SynchronousCustomInput/images/example_turorial_11.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/examples/TutorialApiCpp/13_SynchronousCustomInput/images/example_turorial_11.gif -------------------------------------------------------------------------------- /examples/TutorialApiCpp/14_SynchronousCustomPreProcessing/.gitignore: -------------------------------------------------------------------------------- 1 | models 2 | examples -------------------------------------------------------------------------------- /examples/TutorialApiCpp/14_SynchronousCustomPreProcessing/14_SynchronousCustomPreProcessing.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp2.0 6 | Takuya Takeuchi 7 | Takuya Takeuchi 8 | Sample of OpenPoseDotNet 9 | 10 | 11 | 12 | false 13 | false 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/14_SynchronousCustomPreProcessing/README.md: -------------------------------------------------------------------------------- 1 | # Synchronous Custom Pre Processing 2 | 3 | ## Quick Start 4 | 5 | #### 1. Build OpenPose 6 | 7 | ````dos 8 | > cd 9 | > BuildWindowsVS2015.bat 10 | ```` 11 | 12 | #### 2. Build OpenPoseDotNet.Native 13 | 14 | ````dos 15 | > cd \src\OpenPoseDotNet.Native 16 | > BuildWindowsVS2015.bat 17 | ```` 18 | 19 | #### 3. Try Tutorial 20 | 21 | ````dos 22 | > cd \examples\TutorialApiCpp\14_SynchronousCustomPreProcessing 23 | > SymlinkBinary.bat 24 | > dotnet run -c Release 25 | ```` -------------------------------------------------------------------------------- /examples/TutorialApiCpp/14_SynchronousCustomPreProcessing/WUserPreProcessing.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using OpenPoseDotNet; 3 | 4 | namespace SynchronousCustomPreProcessing 5 | { 6 | 7 | internal sealed class WUserPreProcessing : UserWorker 8 | { 9 | 10 | #region Methods 11 | 12 | #region Overrides 13 | 14 | protected override void InitializationOnThread() 15 | { 16 | } 17 | 18 | protected override void Work(StdSharedPtr[] datums) 19 | { 20 | try 21 | { 22 | // User's pre-processing (after OpenPose read the input image & before OpenPose processing) here 23 | // datumPtr->cvInputData: input frame 24 | if (datums != null && datums.Length != 0) 25 | foreach (var datum in datums) 26 | using (var cvOutputData = OpenPose.OP_OP2CVMAT(datum.Get().CvOutputData)) 27 | Cv.BitwiseNot(cvOutputData, cvOutputData); 28 | } 29 | catch (Exception e) 30 | { 31 | OpenPose.Log("Some kind of unexpected error happened."); 32 | this.Stop(); 33 | OpenPose.Error(e.Message, -1, nameof(this.Work)); 34 | } 35 | } 36 | 37 | #endregion 38 | 39 | #endregion 40 | 41 | } 42 | 43 | } -------------------------------------------------------------------------------- /examples/TutorialApiCpp/15_SynchronousCustomPostProcessing/.gitignore: -------------------------------------------------------------------------------- 1 | models 2 | examples -------------------------------------------------------------------------------- /examples/TutorialApiCpp/15_SynchronousCustomPostProcessing/15_SynchronousCustomPostProcessing.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp2.0 6 | Takuya Takeuchi 7 | Takuya Takeuchi 8 | Sample of OpenPoseDotNet 9 | 10 | 11 | 12 | false 13 | false 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/15_SynchronousCustomPostProcessing/README.md: -------------------------------------------------------------------------------- 1 | # Synchronous Custom Post Processing 2 | 3 | ## Quick Start 4 | 5 | #### 1. Build OpenPose 6 | 7 | ````dos 8 | > cd 9 | > BuildWindowsVS2015.bat 10 | ```` 11 | 12 | #### 2. Build OpenPoseDotNet.Native 13 | 14 | ````dos 15 | > cd \src\OpenPoseDotNet.Native 16 | > BuildWindowsVS2015.bat 17 | ```` 18 | 19 | #### 3. Try Tutorial 20 | 21 | ````dos 22 | > cd \examples\TutorialApiCpp\15_SynchronousCustomPostProcessing 23 | > SymlinkBinary.bat 24 | > dotnet run -c Release 25 | ```` -------------------------------------------------------------------------------- /examples/TutorialApiCpp/15_SynchronousCustomPostProcessing/WUserPostProcessing.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using OpenPoseDotNet; 3 | 4 | namespace SynchronousCustomPostProcessing 5 | { 6 | 7 | internal sealed class WUserPostProcessing : UserWorker 8 | { 9 | 10 | #region Methods 11 | 12 | #region Overrides 13 | 14 | protected override void InitializationOnThread() 15 | { 16 | } 17 | 18 | protected override void Work(StdSharedPtr[] datums) 19 | { 20 | try 21 | { 22 | // User's post-processing (after OpenPose processing & before OpenPose outputs) here 23 | // datum.cvOutputData: rendered frame with pose or heatmaps 24 | // datum.poseKeypoints: Array with the estimated pose 25 | if (datums != null && datums.Length != 0) 26 | foreach (var datum in datums) 27 | using (var cvOutputData = OpenPose.OP_OP2CVMAT(datum.Get().CvOutputData)) 28 | Cv.BitwiseNot(cvOutputData, cvOutputData); 29 | } 30 | catch (Exception e) 31 | { 32 | OpenPose.Log("Some kind of unexpected error happened."); 33 | this.Stop(); 34 | OpenPose.Error(e.Message, -1, nameof(this.Work)); 35 | } 36 | } 37 | 38 | #endregion 39 | 40 | #endregion 41 | 42 | } 43 | 44 | } -------------------------------------------------------------------------------- /examples/TutorialApiCpp/16_SynchronousCustomOutput/.gitignore: -------------------------------------------------------------------------------- 1 | models 2 | examples -------------------------------------------------------------------------------- /examples/TutorialApiCpp/16_SynchronousCustomOutput/16_SynchronousCustomOutput.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp2.0 6 | Takuya Takeuchi 7 | Takuya Takeuchi 8 | Sample of OpenPoseDotNet 9 | 10 | 11 | 12 | false 13 | false 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/16_SynchronousCustomOutput/README.md: -------------------------------------------------------------------------------- 1 | # Synchronous Custom Output 2 | 3 | ## Quick Start 4 | 5 | #### 1. Build OpenPose 6 | 7 | ````dos 8 | > cd 9 | > BuildWindowsVS2015.bat 10 | ```` 11 | 12 | #### 2. Build OpenPoseDotNet.Native 13 | 14 | ````dos 15 | > cd \src\OpenPoseDotNet.Native 16 | > BuildWindowsVS2015.bat 17 | ```` 18 | 19 | #### 3. Try Tutorial 20 | 21 | ````dos 22 | > cd \examples\TutorialApiCpp\16_SynchronousCustomOutput 23 | > SymlinkBinary.bat 24 | > dotnet run -c Release 25 | ```` -------------------------------------------------------------------------------- /examples/TutorialApiCpp/17_SynchronousCustomAllAndDatum/.gitignore: -------------------------------------------------------------------------------- 1 | models 2 | examples -------------------------------------------------------------------------------- /examples/TutorialApiCpp/17_SynchronousCustomAllAndDatum/17_SynchronousCustomAllAndDatum.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp2.0 6 | Takuya Takeuchi 7 | Takuya Takeuchi 8 | Sample of OpenPoseDotNet 9 | 10 | 11 | 12 | false 13 | false 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/17_SynchronousCustomAllAndDatum/README.md: -------------------------------------------------------------------------------- 1 | # Synchronous Custom All AndDatum 2 | 3 | ## Quick Start 4 | 5 | #### 1. Build OpenPose 6 | 7 | ````dos 8 | > cd 9 | > BuildWindowsVS2015.bat 10 | ```` 11 | 12 | #### 2. Build OpenPoseDotNet.Native 13 | 14 | ````dos 15 | > cd \src\OpenPoseDotNet.Native 16 | > BuildWindowsVS2015.bat 17 | ```` 18 | 19 | #### 3. Try Tutorial 20 | 21 | ````dos 22 | > cd \examples\TutorialApiCpp\17_SynchronousCustomAllAndDatum 23 | > SymlinkBinary.bat 24 | > dotnet run -c Release -i "examples\media" 25 | ```` 26 | 27 | -------------------------------------------------------------------------------- /examples/TutorialApiCpp/17_SynchronousCustomAllAndDatum/WUserPostProcessing.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using OpenPoseDotNet; 3 | using UserDatum = OpenPoseDotNet.CustomDatum; 4 | 5 | namespace SynchronousCustomAll 6 | { 7 | 8 | internal sealed class WUserPostProcessing : UserWorker 9 | { 10 | 11 | #region Constructors 12 | 13 | public WUserPostProcessing() 14 | { 15 | // User's constructor here 16 | } 17 | 18 | #endregion 19 | 20 | #region Methods 21 | 22 | #region Overrides 23 | 24 | protected override void InitializationOnThread() 25 | { 26 | } 27 | 28 | protected override void Work(StdSharedPtr[] datums) 29 | { 30 | try 31 | { 32 | // User's post-processing (after OpenPose processing & before OpenPose outputs) here 33 | // datum.cvOutputData: rendered frame with pose or heatmaps 34 | // datum.poseKeypoints: Array with the estimated pose 35 | if (datums != null && datums.Length != 0) 36 | foreach (var datum in datums) 37 | using (var cvOutputData = OpenPose.OP_OP2CVMAT(datum.Get().CvOutputData)) 38 | Cv.BitwiseNot(cvOutputData, cvOutputData); 39 | } 40 | catch (Exception e) 41 | { 42 | this.Stop(); 43 | OpenPose.Error(e.Message, -1, nameof(this.Work)); 44 | } 45 | } 46 | 47 | #endregion 48 | 49 | #endregion 50 | 51 | } 52 | 53 | } -------------------------------------------------------------------------------- /examples/TutorialApiCpp/17_SynchronousCustomAllAndDatum/images/example_turorial_15.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/examples/TutorialApiCpp/17_SynchronousCustomAllAndDatum/images/example_turorial_15.gif -------------------------------------------------------------------------------- /examples/TutorialApiThread/1_ThreadUserProcessingFunction/.gitignore: -------------------------------------------------------------------------------- 1 | models 2 | examples -------------------------------------------------------------------------------- /examples/TutorialApiThread/1_ThreadUserProcessingFunction/1_ThreadUserProcessingFunction.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp2.0 6 | Takuya Takeuchi 7 | Takuya Takeuchi 8 | Sample of OpenPoseDotNet 9 | 10 | 11 | 12 | false 13 | false 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /examples/TutorialApiThread/1_ThreadUserProcessingFunction/CopyOpenPose.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # *************************************** 4 | # Arguments 5 | # $1: Build Configuration (Release/Debug) 6 | # *************************************** 7 | if [ $# -ne 1 ]; then 8 | echo "Error: Specify build configuration [Release/Debug]" 9 | exit 1 10 | fi 11 | 12 | if [ "$(uname)" == 'Darwin' ]; then 13 | echo "Your platform ($(uname -a)) is MacOS." 14 | OpenPoseLibrary='libopenpose.dylib' 15 | OpenPoseDebugLibrary='libopenposed.dylib' 16 | NativeLibrary='libOpenPoseDotNetNative.dylib' 17 | elif [ "$(expr substr $(uname -s) 1 5)" == 'Linux' ]; then 18 | echo "Your platform ($(uname -a)) is Linux." 19 | OpenPoseLibrary='libopenpose.so' 20 | OpenPoseDebugLibrary='libopenposed.so' 21 | NativeLibrary='libOpenPoseDotNetNative.so' 22 | else 23 | echo "Your platform ($(uname -a)) is not supported." 24 | exit 1 25 | fi 26 | 27 | mkdir -p bin/$1/netcoreapp2.0 28 | 29 | if [ $1 = "Release" ]; then 30 | cp ../../../openpose/build/src/openpose/${OpenPoseLibrary} bin/$1/netcoreapp2.0 31 | elif [ $1 = "Debug" ]; then 32 | cp ../../../openpose/build/src/openpose/${OpenPoseDebugLibrary} bin/$1/netcoreapp2.0 33 | fi 34 | 35 | if [ $1 = "Release" ]; then 36 | cp ../../../src/OpenPoseDotNet.Native/build/${NativeLibrary} bin/$1/netcoreapp2.0 37 | elif [ $1 = "Debug" ]; then 38 | cp ../../../src/OpenPoseDotNet.Native/build/${NativeLibrary} bin/$1/netcoreapp2.0 39 | fi 40 | -------------------------------------------------------------------------------- /examples/TutorialApiThread/1_ThreadUserProcessingFunction/README.md: -------------------------------------------------------------------------------- 1 | # Thread UserProcessing Function 2 | 3 | ## Quick Start 4 | 5 | #### 1. Build OpenPose 6 | 7 | ````dos 8 | > cd 9 | > BuildWindowsVS2015.bat 10 | ```` 11 | 12 | #### 2. Build OpenPoseDotNet.Native 13 | 14 | ````dos 15 | > cd \src\OpenPoseDotNet.Native 16 | > BuildWindowsVS2015.bat 17 | ```` 18 | 19 | #### 3. Try Tutorial 20 | 21 | ````dos 22 | > cd \examples\TutorialDeveloper\1_ThreadUserProcessingFunction 23 | > SymlinkBinary.bat 24 | > dotnet run -c Release 25 | ```` -------------------------------------------------------------------------------- /examples/TutorialApiThread/1_ThreadUserProcessingFunction/video.avi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/examples/TutorialApiThread/1_ThreadUserProcessingFunction/video.avi -------------------------------------------------------------------------------- /examples/TutorialApiThread/2_ThreadUserInputProcessingOutputAndDatum/.gitignore: -------------------------------------------------------------------------------- 1 | models 2 | examples -------------------------------------------------------------------------------- /examples/TutorialApiThread/2_ThreadUserInputProcessingOutputAndDatum/2_ThreadUserInputProcessingOutputAndDatum.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp2.0 6 | Takuya Takeuchi 7 | Takuya Takeuchi 8 | Sample of OpenPoseDotNet 9 | 10 | 11 | 12 | false 13 | false 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /examples/TutorialApiThread/2_ThreadUserInputProcessingOutputAndDatum/CopyOpenPose.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # *************************************** 4 | # Arguments 5 | # $1: Build Configuration (Release/Debug) 6 | # *************************************** 7 | if [ $# -ne 1 ]; then 8 | echo "Error: Specify build configuration [Release/Debug]" 9 | exit 1 10 | fi 11 | 12 | if [ "$(uname)" == 'Darwin' ]; then 13 | echo "Your platform ($(uname -a)) is MacOS." 14 | OpenPoseLibrary='libopenpose.dylib' 15 | OpenPoseDebugLibrary='libopenposed.dylib' 16 | NativeLibrary='libOpenPoseDotNetNative.dylib' 17 | elif [ "$(expr substr $(uname -s) 1 5)" == 'Linux' ]; then 18 | echo "Your platform ($(uname -a)) is Linux." 19 | OpenPoseLibrary='libopenpose.so' 20 | OpenPoseDebugLibrary='libopenposed.so' 21 | NativeLibrary='libOpenPoseDotNetNative.so' 22 | else 23 | echo "Your platform ($(uname -a)) is not supported." 24 | exit 1 25 | fi 26 | 27 | mkdir -p bin/$1/netcoreapp2.0 28 | 29 | if [ $1 = "Release" ]; then 30 | cp ../../../openpose/build/src/openpose/${OpenPoseLibrary} bin/$1/netcoreapp2.0 31 | elif [ $1 = "Debug" ]; then 32 | cp ../../../openpose/build/src/openpose/${OpenPoseDebugLibrary} bin/$1/netcoreapp2.0 33 | fi 34 | 35 | if [ $1 = "Release" ]; then 36 | cp ../../../src/OpenPoseDotNet.Native/build/${NativeLibrary} bin/$1/netcoreapp2.0 37 | elif [ $1 = "Debug" ]; then 38 | cp ../../../src/OpenPoseDotNet.Native/build/${NativeLibrary} bin/$1/netcoreapp2.0 39 | fi 40 | 41 | mkdir -p examples/media 42 | cp ../../../openpose/examples/media/*.jpg examples/media 43 | 44 | mkdir -p bin/$1/netcoreapp2.0/examples 45 | cp -Rf examples bin/$1/netcoreapp2.0/examples 46 | -------------------------------------------------------------------------------- /examples/TutorialApiThread/2_ThreadUserInputProcessingOutputAndDatum/README.md: -------------------------------------------------------------------------------- 1 | # Thread User Input Processing Output And Datum 2 | 3 | ## Quick Start 4 | 5 | #### 1. Build OpenPose 6 | 7 | ````dos 8 | > cd 9 | > BuildWindowsVS2015.bat 10 | ```` 11 | 12 | #### 2. Build OpenPoseDotNet.Native 13 | 14 | ````dos 15 | > cd \src\OpenPoseDotNet.Native 16 | > BuildWindowsVS2015.bat 17 | ```` 18 | 19 | #### 3. Try Tutorial 20 | 21 | ````dos 22 | > cd \examples\TutorialDeveloper\2_ThreadUserInputProcessingOutputAndDatum 23 | > SymlinkBinary.bat 24 | > dotnet run -c Release -i "examples\media" 25 | ```` 26 | 27 | -------------------------------------------------------------------------------- /examples/TutorialApiThread/2_ThreadUserInputProcessingOutputAndDatum/images/example_turorial_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/examples/TutorialApiThread/2_ThreadUserInputProcessingOutputAndDatum/images/example_turorial_2.gif -------------------------------------------------------------------------------- /images/example_turorial_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/images/example_turorial_1.png -------------------------------------------------------------------------------- /nuget/BuildNuspec.bat: -------------------------------------------------------------------------------- 1 | dotnet restore ..\src\OpenPoseDotNet 2 | dotnet build -c Release ..\src\OpenPoseDotNet 3 | nuget pack OpenPoseDotNet.nuspec -------------------------------------------------------------------------------- /nuget/artifacts/.gitignore: -------------------------------------------------------------------------------- 1 | *.so 2 | *.dylib 3 | *.dll 4 | *.a -------------------------------------------------------------------------------- /nuget/artifacts/cpu/runtimes/centos-x64/lib/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/artifacts/cpu/runtimes/centos-x64/lib/.keepfolder -------------------------------------------------------------------------------- /nuget/artifacts/cpu/runtimes/centos-x64/native/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/artifacts/cpu/runtimes/centos-x64/native/.keepfolder -------------------------------------------------------------------------------- /nuget/artifacts/cpu/runtimes/linux-x64/lib/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/artifacts/cpu/runtimes/linux-x64/lib/.keepfolder -------------------------------------------------------------------------------- /nuget/artifacts/cpu/runtimes/linux-x64/native/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/artifacts/cpu/runtimes/linux-x64/native/.keepfolder -------------------------------------------------------------------------------- /nuget/artifacts/cpu/runtimes/osx-x64/lib/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/artifacts/cpu/runtimes/osx-x64/lib/.keepfolder -------------------------------------------------------------------------------- /nuget/artifacts/cpu/runtimes/osx-x64/native/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/artifacts/cpu/runtimes/osx-x64/native/.keepfolder -------------------------------------------------------------------------------- /nuget/artifacts/cpu/runtimes/win-x64/lib/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/artifacts/cpu/runtimes/win-x64/lib/.keepfolder -------------------------------------------------------------------------------- /nuget/artifacts/cpu/runtimes/win-x64/native/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/artifacts/cpu/runtimes/win-x64/native/.keepfolder -------------------------------------------------------------------------------- /nuget/artifacts/cpu/runtimes/win-x86/lib/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/artifacts/cpu/runtimes/win-x86/lib/.keepfolder -------------------------------------------------------------------------------- /nuget/artifacts/cpu/runtimes/win-x86/native/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/artifacts/cpu/runtimes/win-x86/native/.keepfolder -------------------------------------------------------------------------------- /nuget/artifacts/cuda-100/runtimes/centos-x64/lib/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/artifacts/cuda-100/runtimes/centos-x64/lib/.keepfolder -------------------------------------------------------------------------------- /nuget/artifacts/cuda-100/runtimes/centos-x64/native/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/artifacts/cuda-100/runtimes/centos-x64/native/.keepfolder -------------------------------------------------------------------------------- /nuget/artifacts/cuda-100/runtimes/linux-x64/lib/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/artifacts/cuda-100/runtimes/linux-x64/lib/.keepfolder -------------------------------------------------------------------------------- /nuget/artifacts/cuda-100/runtimes/linux-x64/native/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/artifacts/cuda-100/runtimes/linux-x64/native/.keepfolder -------------------------------------------------------------------------------- /nuget/artifacts/cuda-100/runtimes/osx-x64/lib/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/artifacts/cuda-100/runtimes/osx-x64/lib/.keepfolder -------------------------------------------------------------------------------- /nuget/artifacts/cuda-100/runtimes/osx-x64/native/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/artifacts/cuda-100/runtimes/osx-x64/native/.keepfolder -------------------------------------------------------------------------------- /nuget/artifacts/cuda-100/runtimes/win-x64/lib/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/artifacts/cuda-100/runtimes/win-x64/lib/.keepfolder -------------------------------------------------------------------------------- /nuget/artifacts/cuda-100/runtimes/win-x64/native/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/artifacts/cuda-100/runtimes/win-x64/native/.keepfolder -------------------------------------------------------------------------------- /nuget/artifacts/cuda-101/runtimes/centos-x64/lib/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/artifacts/cuda-101/runtimes/centos-x64/lib/.keepfolder -------------------------------------------------------------------------------- /nuget/artifacts/cuda-101/runtimes/centos-x64/native/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/artifacts/cuda-101/runtimes/centos-x64/native/.keepfolder -------------------------------------------------------------------------------- /nuget/artifacts/cuda-101/runtimes/linux-x64/lib/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/artifacts/cuda-101/runtimes/linux-x64/lib/.keepfolder -------------------------------------------------------------------------------- /nuget/artifacts/cuda-101/runtimes/linux-x64/native/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/artifacts/cuda-101/runtimes/linux-x64/native/.keepfolder -------------------------------------------------------------------------------- /nuget/artifacts/cuda-101/runtimes/osx-x64/lib/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/artifacts/cuda-101/runtimes/osx-x64/lib/.keepfolder -------------------------------------------------------------------------------- /nuget/artifacts/cuda-101/runtimes/osx-x64/native/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/artifacts/cuda-101/runtimes/osx-x64/native/.keepfolder -------------------------------------------------------------------------------- /nuget/artifacts/cuda-101/runtimes/win-x64/lib/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/artifacts/cuda-101/runtimes/win-x64/lib/.keepfolder -------------------------------------------------------------------------------- /nuget/artifacts/cuda-101/runtimes/win-x64/native/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/artifacts/cuda-101/runtimes/win-x64/native/.keepfolder -------------------------------------------------------------------------------- /nuget/artifacts/cuda-92/runtimes/centos-x64/lib/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/artifacts/cuda-92/runtimes/centos-x64/lib/.keepfolder -------------------------------------------------------------------------------- /nuget/artifacts/cuda-92/runtimes/centos-x64/native/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/artifacts/cuda-92/runtimes/centos-x64/native/.keepfolder -------------------------------------------------------------------------------- /nuget/artifacts/cuda-92/runtimes/linux-x64/lib/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/artifacts/cuda-92/runtimes/linux-x64/lib/.keepfolder -------------------------------------------------------------------------------- /nuget/artifacts/cuda-92/runtimes/linux-x64/native/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/artifacts/cuda-92/runtimes/linux-x64/native/.keepfolder -------------------------------------------------------------------------------- /nuget/artifacts/cuda-92/runtimes/osx-x64/lib/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/artifacts/cuda-92/runtimes/osx-x64/lib/.keepfolder -------------------------------------------------------------------------------- /nuget/artifacts/cuda-92/runtimes/osx-x64/native/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/artifacts/cuda-92/runtimes/osx-x64/native/.keepfolder -------------------------------------------------------------------------------- /nuget/artifacts/cuda-92/runtimes/win-x64/lib/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/artifacts/cuda-92/runtimes/win-x64/lib/.keepfolder -------------------------------------------------------------------------------- /nuget/artifacts/cuda-92/runtimes/win-x64/native/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/artifacts/cuda-92/runtimes/win-x64/native/.keepfolder -------------------------------------------------------------------------------- /nuget/build/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/build/.keepfolder -------------------------------------------------------------------------------- /nuget/build/OpenPoseDotNet.targets: -------------------------------------------------------------------------------- 1 | 2 | 3 | 1.4.0.20190117 4 | 5 | 6 | 7 | 8 | "$([MSBuild]::GetPathOfFileAbove($(MSBuildThisFile), $(MSBuildThisFileDirectory)..\..\))" 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /nuget/pose.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/pose.png -------------------------------------------------------------------------------- /nuget/pose128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/pose128.png -------------------------------------------------------------------------------- /nuget/pose48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/pose48.png -------------------------------------------------------------------------------- /nuget/ref/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/ref/.keepfolder -------------------------------------------------------------------------------- /nuget/ref/native/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/ref/native/.keepfolder -------------------------------------------------------------------------------- /nuget/runtimes/linux-x64/lib/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/runtimes/linux-x64/lib/.keepfolder -------------------------------------------------------------------------------- /nuget/runtimes/linux-x64/native/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/runtimes/linux-x64/native/.keepfolder -------------------------------------------------------------------------------- /nuget/runtimes/osx-x64/lib/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/runtimes/osx-x64/lib/.keepfolder -------------------------------------------------------------------------------- /nuget/runtimes/osx-x64/native/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/runtimes/osx-x64/native/.keepfolder -------------------------------------------------------------------------------- /nuget/runtimes/win-x64/lib/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/runtimes/win-x64/lib/.keepfolder -------------------------------------------------------------------------------- /nuget/runtimes/win-x64/native/.keepfolder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/takuya-takeuchi/OpenPoseDotNet/66f267d6592b4b035848b2de9214252f88e39f61/nuget/runtimes/win-x64/native/.keepfolder -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/Build.ps1: -------------------------------------------------------------------------------- 1 | #*************************************** 2 | #Arguments 3 | #%1: Build Configuration (Release/Debug) 4 | #%2: Target (cpu/cuda) 5 | #%3: Architecture (32/64) 6 | #%4: Platform (desktop) 7 | #%5: Optional Argument 8 | # if build on Windows, Visual Studio Version [2015/2017/2019] 9 | # if Target is cuda, CUDA version if Target is cuda [90/91/92/100/101] 10 | #*************************************** 11 | Param 12 | ( 13 | [Parameter( 14 | Mandatory=$True, 15 | Position = 1 16 | )][string] 17 | $Configuration, 18 | 19 | [Parameter( 20 | Mandatory=$True, 21 | Position = 2 22 | )][string] 23 | $Target, 24 | 25 | [Parameter( 26 | Mandatory=$True, 27 | Position = 3 28 | )][int] 29 | $Architecture, 30 | 31 | [Parameter( 32 | Mandatory=$False, 33 | Position = 4 34 | )][string] 35 | $Platform, 36 | 37 | [Parameter( 38 | Mandatory=$False, 39 | Position = 5 40 | )][string] 41 | $Option1, 42 | 43 | [Parameter( 44 | Mandatory=$False, 45 | Position = 8 46 | )][string] 47 | $Option2 48 | ) 49 | 50 | # import class and function 51 | $ScriptPath = $PSScriptRoot 52 | Write-Host "Build"(Split-Path $ScriptPath -Leaf) -ForegroundColor Green 53 | 54 | $SrcPath = Split-Path $ScriptPath -Parent 55 | $OpenPoseDotNetRoot = Split-Path $SrcPath -Parent 56 | $NugetPath = Join-Path $OpenPoseDotNetRoot "nuget" | ` 57 | Join-Path -ChildPath "BuildUtils.ps1" 58 | import-module $NugetPath -function * 59 | 60 | $Config = [Config]::new($OpenPoseDotNetRoot, $Configuration, $Target, $Architecture, $Platform, $Option1, $Option2) 61 | Build -Config $Config -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/BuildLinux.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # *************************************** 4 | # Arguments 5 | # $1: Build Configuration (Release/Debug) 6 | # *************************************** 7 | if [ $# -ne 1 ]; then 8 | echo "Error: Specify build configuration [Release/Debug]" 9 | exit 1 10 | fi 11 | 12 | CUDDIR=`pwd` 13 | OUTPUT=build_linux 14 | 15 | mkdir -p ${OUTPUT} && cd ${OUTPUT} 16 | cmake .. 17 | cmake --build . --config $1 18 | cd ${CURDIR} 19 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/BuildMacOSX.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # *************************************** 4 | # Arguments 5 | # $1: Build Configuration (Release/Debug) 6 | # *************************************** 7 | if [ $# -ne 1 ]; then 8 | echo "Error: Specify build configuration [Release/Debug]" 9 | exit 1 10 | fi 11 | 12 | CUDDIR=`pwd` 13 | OUTPUT=build_osx 14 | 15 | mkdir -p ${OUTPUT} && cd ${OUTPUT} 16 | cmake .. 17 | cmake --build . --config $1 18 | cd ${CURDIR} 19 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/3d/CameraParameterReader.cpp: -------------------------------------------------------------------------------- 1 | #include "CameraParameterReader.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/3d/CameraParameterReader.h: -------------------------------------------------------------------------------- 1 | #ifndef _CPP_OP_3D_CAMERAPARAMETERREADER_H_ 2 | #define _CPP_OP_3D_CAMERAPARAMETERREADER_H_ 3 | 4 | #include "../shared.h" 5 | 6 | DLLEXPORT op::CameraParameterReader* op_CameraParameterReader_new() 7 | { 8 | return new op::CameraParameterReader(); 9 | } 10 | 11 | DLLEXPORT void op_CameraParameterReader_delete(op::CameraParameterReader* parameter) 12 | { 13 | delete parameter; 14 | } 15 | 16 | DLLEXPORT unsigned long long op_CameraParameterReader_getNumberCameras(op::CameraParameterReader* parameter) 17 | { 18 | return parameter->getNumberCameras(); 19 | } 20 | 21 | DLLEXPORT bool op_CameraParameterReader_getUndistortImage(op::CameraParameterReader* parameter) 22 | { 23 | return parameter->getUndistortImage(); 24 | } 25 | 26 | DLLEXPORT void op_CameraParameterReader_setUndistortImage(op::CameraParameterReader* parameter, const bool undistortImage) 27 | { 28 | parameter->setUndistortImage(undistortImage); 29 | } 30 | 31 | #endif -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/3rdparty/opencv/MatExpr.cpp: -------------------------------------------------------------------------------- 1 | #include "MatExpr.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/3rdparty/opencv/MatExpr.h: -------------------------------------------------------------------------------- 1 | #ifndef _CPP_OP_3RDPARTY_OPENCV_MATEXPR_H_ 2 | #define _CPP_OP_3RDPARTY_OPENCV_MATEXPR_H_ 3 | 4 | #include "../../shared.h" 5 | 6 | DLLEXPORT void op_3rdparty_cv_MatExpr_delete(cv::MatExpr* expr) 7 | { 8 | delete expr; 9 | } 10 | 11 | DLLEXPORT cv::Mat* op_3rdparty_cv_MatExpr_toMat(cv::MatExpr *self) 12 | { 13 | auto& ret = *static_cast(self); 14 | return new cv::Mat(ret); 15 | } 16 | 17 | #pragma region operators 18 | 19 | DLLEXPORT cv::MatExpr* op_3rdparty_cv_MatExpr_operator_add(const cv::MatExpr* lhs, const double rhs) 20 | { 21 | const auto& l = *static_cast(lhs); 22 | const auto ret = l + rhs; 23 | return new cv::MatExpr(ret); 24 | } 25 | 26 | DLLEXPORT cv::MatExpr* op_3rdparty_cv_MatExpr_operator_multiply_int32_t(const cv::MatExpr* lhs, const int rhs) 27 | { 28 | const auto& l = *static_cast(lhs); 29 | const auto ret = l * rhs; 30 | return new cv::MatExpr(ret); 31 | } 32 | 33 | DLLEXPORT cv::MatExpr* op_3rdparty_cv_MatExpr_operator_multiply_double(const cv::MatExpr* lhs, const double rhs) 34 | { 35 | const auto& l = *static_cast(lhs); 36 | const auto ret = l * rhs; 37 | return new cv::MatExpr(ret); 38 | } 39 | 40 | #pragma endregion operators 41 | 42 | #endif 43 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/3rdparty/opencv/cv.cpp: -------------------------------------------------------------------------------- 1 | #include "cv.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/3rdparty/opencv/mat.cpp: -------------------------------------------------------------------------------- 1 | #include "Mat.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/core/Matrix.cpp: -------------------------------------------------------------------------------- 1 | #include "Matrix.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/core/Matrix.h: -------------------------------------------------------------------------------- 1 | #ifndef _CPP_OP_CORE_MATRIX_H_ 2 | #define _CPP_OP_CORE_MATRIX_H_ 3 | 4 | #include "../shared.h" 5 | 6 | DLLEXPORT void op_core_Matrix_delete(op::Matrix* matrix) 7 | { 8 | delete matrix; 9 | } 10 | 11 | DLLEXPORT bool op_core_Matrix_empty(op::Matrix* mat) 12 | { 13 | return mat->empty(); 14 | } 15 | 16 | DLLEXPORT cv::Mat* op_core_Matrix_OP_OP2CVCONSTMAT(op::Matrix* matrix) 17 | { 18 | auto& opMat = *matrix; 19 | const auto ret = OP_OP2CVCONSTMAT(opMat); 20 | return new cv::Mat(ret); 21 | } 22 | 23 | DLLEXPORT cv::Mat* op_core_Matrix_OP_OP2CVMAT(op::Matrix* matrix) 24 | { 25 | auto& opMat = *matrix; 26 | const auto ret = OP_OP2CVMAT(opMat); 27 | return new cv::Mat(ret); 28 | } 29 | 30 | DLLEXPORT op::Matrix* op_core_Matrix_OP_CV2OPCONSTMAT(cv::Mat* matrix) 31 | { 32 | auto& opMat = *matrix; 33 | const auto ret = OP_CV2OPCONSTMAT(opMat); 34 | return new op::Matrix(ret); 35 | } 36 | 37 | #endif -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/core/array.cpp: -------------------------------------------------------------------------------- 1 | #include "array.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/core/cvMatToOpInput.cpp: -------------------------------------------------------------------------------- 1 | #include "cvMatToOpInput.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/core/cvMatToOpInput.h: -------------------------------------------------------------------------------- 1 | #ifndef _CPP_OP_CORE_CV_MAT_TO_OP_INPUT_HPP 2 | #define _CPP_OP_CORE_CV_MAT_TO_OP_INPUT_HPP 3 | 4 | #include "../shared.h" 5 | 6 | DLLEXPORT op::CvMatToOpInput* op_core_CvMatToOpInput_new(const op::PoseModel poseModel) 7 | { 8 | return new op::CvMatToOpInput(poseModel); 9 | } 10 | 11 | DLLEXPORT void op_core_CvMatToOpInput_delete(op::CvMatToOpInput* input) 12 | { 13 | delete input; 14 | } 15 | 16 | DLLEXPORT std::vector>* op_core_CvMatToOpInput_createArray(op::CvMatToOpInput* input, 17 | const op::Matrix* cvInputData, 18 | const std::vector* scaleInputToNetInputs, 19 | const std::vector>* netInputSizes) 20 | { 21 | const auto& inputData = *cvInputData; 22 | const auto& scale = *scaleInputToNetInputs; 23 | const auto& sizes = *netInputSizes; 24 | const auto ret = input->createArray(inputData, scale, sizes); 25 | const auto vector = new std::vector>(ret); 26 | return vector; 27 | } 28 | 29 | #endif -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/core/cvMatToOpOutput.cpp: -------------------------------------------------------------------------------- 1 | #include "cvMatToOpOutput.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/core/cvMatToOpOutput.h: -------------------------------------------------------------------------------- 1 | #ifndef _CPP_OP_CORE_CV_MAT_TO_OP_OUTPUT_HPP 2 | #define _CPP_OP_CORE_CV_MAT_TO_OP_OUTPUT_HPP 3 | 4 | #include "../shared.h" 5 | 6 | DLLEXPORT op::CvMatToOpOutput* op_core_CvMatToOpOutput_new() 7 | { 8 | return new op::CvMatToOpOutput(); 9 | } 10 | 11 | DLLEXPORT void op_core_CvMatToOpOutput_delete(op::CvMatToOpOutput* output) 12 | { 13 | delete output; 14 | } 15 | 16 | DLLEXPORT op::Array* op_core_CvMatToOpOutput_createArray(op::CvMatToOpOutput* output, 17 | const op::Matrix* cvInputData, 18 | const double scaleInputToOutput, 19 | const op::Point* outputResolution) 20 | { 21 | const auto& inputData = *cvInputData; 22 | const auto& resolution = *outputResolution; 23 | const auto ret = output->createArray(inputData, scaleInputToOutput, resolution); 24 | return new op::Array(ret); 25 | } 26 | 27 | #endif -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/core/datum.cpp: -------------------------------------------------------------------------------- 1 | #include "datum.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/core/macros.cpp: -------------------------------------------------------------------------------- 1 | #include "macros.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/core/macros.h: -------------------------------------------------------------------------------- 1 | #ifndef _CPP_OP_CORE_MACROS_H_ 2 | #define _CPP_OP_CORE_MACROS_H_ 3 | 4 | #include "../shared.h" 5 | 6 | DLLEXPORT std::string* op_core_macros_get_OPEN_POSE_NAME_STRING() 7 | { 8 | return new std::string(OPEN_POSE_NAME_STRING.c_str()); 9 | } 10 | 11 | DLLEXPORT std::string* op_core_macros_get_OPEN_POSE_VERSION_STRING() 12 | { 13 | return new std::string(OPEN_POSE_VERSION_STRING.c_str()); 14 | } 15 | 16 | DLLEXPORT std::string* op_core_macros_get_OPEN_POSE_NAME_AND_VERSION() 17 | { 18 | return new std::string(OPEN_POSE_NAME_AND_VERSION.c_str()); 19 | } 20 | 21 | #endif -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/core/opOutputToCvMat.cpp: -------------------------------------------------------------------------------- 1 | #include "opOutputToCvMat.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/core/opOutputToCvMat.h: -------------------------------------------------------------------------------- 1 | #ifndef _CPP_OP_CORE_OP_OUTPUT_TO_CV_MAT_HPP 2 | #define _CPP_OP_CORE_OP_OUTPUT_TO_CV_MAT_HPP 3 | 4 | #include "../shared.h" 5 | 6 | DLLEXPORT op::OpOutputToCvMat* op_core_OpOutputToCvMat_new() 7 | { 8 | return new op::OpOutputToCvMat(); 9 | } 10 | 11 | DLLEXPORT void op_core_OpOutputToCvMat_delete(op::OpOutputToCvMat* mat) 12 | { 13 | delete mat; 14 | } 15 | 16 | DLLEXPORT op::Matrix* op_core_OpOutputToCvMat_formatToCvMat(op::OpOutputToCvMat* mat, const op::Array* outputData) 17 | { 18 | const auto& tmp = *outputData; 19 | const auto ret = mat->formatToCvMat(tmp); 20 | return new op::Matrix(ret); 21 | } 22 | 23 | #endif -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/core/point.cpp: -------------------------------------------------------------------------------- 1 | #include "point.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/core/point.h: -------------------------------------------------------------------------------- 1 | #ifndef _CPP_OP_CORE_POINT_H_ 2 | #define _CPP_OP_CORE_POINT_H_ 3 | 4 | #include "../shared.h" 5 | 6 | #pragma region template 7 | 8 | #define MAKE_FUNC(__NAME__, __TYPE__)\ 9 | DLLEXPORT op::Point<__TYPE__>* op_core_point_##__NAME__##_new(__TYPE__ x, __TYPE__ y)\ 10 | {\ 11 | return new op::Point<__TYPE__>(x, y);\ 12 | }\ 13 | \ 14 | DLLEXPORT void op_core_point_##__NAME__##_delete(op::Point<__TYPE__>* point)\ 15 | {\ 16 | delete point;\ 17 | }\ 18 | 19 | #pragma endregion template 20 | 21 | MAKE_FUNC(int, int) 22 | MAKE_FUNC(float, float) 23 | MAKE_FUNC(double, double) 24 | 25 | #endif -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/core/rectangle.cpp: -------------------------------------------------------------------------------- 1 | #include "rectangle.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/core/rectangle.h: -------------------------------------------------------------------------------- 1 | #ifndef _CPP_OP_CORE_RECTANGLE_H_ 2 | #define _CPP_OP_CORE_RECTANGLE_H_ 3 | 4 | #include "../shared.h" 5 | 6 | #pragma region template 7 | 8 | #define MAKE_FUNC(__NAME__, __TYPE__)\ 9 | DLLEXPORT op::Rectangle<__TYPE__>* op_core_rectangle_##__NAME__##_new(__TYPE__ x, __TYPE__ y, __TYPE__ width, __TYPE__ height)\ 10 | {\ 11 | return new op::Rectangle<__TYPE__>(x, y, width, height);\ 12 | }\ 13 | \ 14 | DLLEXPORT void op_core_rectangle_##__NAME__##_delete(op::Rectangle<__TYPE__>* rectangle)\ 15 | {\ 16 | delete rectangle;\ 17 | }\ 18 | 19 | #pragma endregion template 20 | 21 | MAKE_FUNC(float, float) 22 | 23 | #endif -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/core/scaleAndSizeExtractor.cpp: -------------------------------------------------------------------------------- 1 | #include "scaleAndSizeExtractor.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/cstd/string.cpp: -------------------------------------------------------------------------------- 1 | #include "string.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/cstd/string.h: -------------------------------------------------------------------------------- 1 | #ifndef _CPP_CSTD_STRING_H_ 2 | #define _CPP_CSTD_STRING_H_ 3 | 4 | #include "../export.h" 5 | #include 6 | 7 | DLLEXPORT void* cstd_memcpy(void* buf1, const void* buf2, size_t n) 8 | { 9 | return memcpy(buf1, buf2, n); 10 | } 11 | 12 | #endif -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/custom/custom.cpp: -------------------------------------------------------------------------------- 1 | #include "custom.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/custom/custom.h: -------------------------------------------------------------------------------- 1 | #ifndef _CPP_OP_CUSTOM_CUSTOM_H_ 2 | #define _CPP_OP_CUSTOM_CUSTOM_H_ 3 | 4 | #include "../shared.h" 5 | #include "customDatum.h" 6 | #include "../user/userWorker.h" 7 | 8 | DLLEXPORT CustomDatum* op_CustomDatum_new() 9 | { 10 | return new CustomDatum(); 11 | } 12 | 13 | DLLEXPORT void op_CustomDatum_delete(CustomDatum* datum) 14 | { 15 | delete datum; 16 | } 17 | 18 | DLLEXPORT void* op_CustomDatum_get_data(CustomDatum* datum) 19 | { 20 | return datum->data; 21 | } 22 | 23 | DLLEXPORT void op_CustomDatum_set_data(CustomDatum* datum, void* data) 24 | { 25 | datum->data = data; 26 | } 27 | 28 | #endif -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/custom/customDatum.cpp: -------------------------------------------------------------------------------- 1 | #include "customDatum.h" 2 | 3 | CustomDatum::CustomDatum() 4 | { 5 | } 6 | 7 | CustomDatum::~CustomDatum() 8 | { 9 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/custom/customDatum.h: -------------------------------------------------------------------------------- 1 | #ifndef _CPP_OP_CUSTOM_CUSTOMDATUM_H_ 2 | #define _CPP_OP_CUSTOM_CUSTOMDATUM_H_ 3 | 4 | #include "../shared.h" 5 | 6 | class CustomDatum : public op::Datum 7 | { 8 | public: 9 | CustomDatum(); 10 | 11 | virtual ~CustomDatum(); 12 | 13 | void* data; 14 | }; 15 | 16 | typedef std::vector TCustomDatums; 17 | typedef std::shared_ptr TCustomDatumsSP; 18 | 19 | #endif -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/export.h: -------------------------------------------------------------------------------- 1 | #ifdef _WINDOWS 2 | #define DLLEXPORT extern "C" __declspec(dllexport) 3 | #else 4 | #define DLLEXPORT extern "C" 5 | // size_t is missing for non windows system 6 | #include 7 | #endif -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/filestream/fileStream.cpp: -------------------------------------------------------------------------------- 1 | #include "fileStream.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/filestream/fileStream.h: -------------------------------------------------------------------------------- 1 | #ifndef _CPP_OP_FILESTREAM_FILESTREAM_H_ 2 | #define _CPP_OP_FILESTREAM_FILESTREAM_H_ 3 | 4 | #include "../shared.h" 5 | 6 | DLLEXPORT op::Matrix* op_loadImage(const char* fullFilePath, const int openCvFlags) 7 | { 8 | const auto ret = op::loadImage(std::string(fullFilePath), openCvFlags); 9 | return new op::Matrix(ret); 10 | } 11 | 12 | DLLEXPORT op::DataFormat op_stringToDataFormat(const char* dataFormat) 13 | { 14 | const std::string str_dataFormat(dataFormat); 15 | return op::stringToDataFormat(str_dataFormat); 16 | } 17 | 18 | #endif -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/flags.cpp: -------------------------------------------------------------------------------- 1 | #include "flags.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/gpu/gpu.cpp: -------------------------------------------------------------------------------- 1 | #include "gpu.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/gpu/gpu.h: -------------------------------------------------------------------------------- 1 | #ifndef _CPP_OP_GPU_GPU_H_ 2 | #define _CPP_OP_GPU_GPU_H_ 3 | 4 | #include "../shared.h" 5 | 6 | DLLEXPORT int op_getGpuNumber() 7 | { 8 | return op::getGpuNumber(); 9 | } 10 | 11 | DLLEXPORT op::GpuMode op_getGpuMode() 12 | { 13 | return op::getGpuMode(); 14 | } 15 | 16 | #endif -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/gui/frameDisplayer.cpp: -------------------------------------------------------------------------------- 1 | #include "frameDisplayer.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/gui/frameDisplayer.h: -------------------------------------------------------------------------------- 1 | #ifndef _CPP_OP_GUI_FRAMES_DISPLAY_H_ 2 | #define _CPP_OP_GUI_FRAMES_DISPLAY_H_ 3 | 4 | #include "../shared.h" 5 | 6 | DLLEXPORT op::FrameDisplayer* op_FrameDisplayer_new(const char* windowedName, 7 | const op::Point* initialWindowedSize, 8 | const bool fullScreen = false) 9 | { 10 | return new op::FrameDisplayer(std::string(windowedName), *initialWindowedSize, fullScreen); 11 | } 12 | 13 | DLLEXPORT void op_FrameDisplayer_delete(op::FrameDisplayer* displayer) 14 | { 15 | delete displayer; 16 | } 17 | 18 | DLLEXPORT void op_FrameDisplayer_displayFrame(op::FrameDisplayer* displayer, op::Matrix* frame, const int waitKeyValue) 19 | { 20 | const auto& f = *frame; 21 | displayer->displayFrame(f, waitKeyValue); 22 | } 23 | 24 | #endif -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/gui/gui.cpp: -------------------------------------------------------------------------------- 1 | #include "gui.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/gui/wGui.cpp: -------------------------------------------------------------------------------- 1 | #include "wGui.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/gui/wGui.h: -------------------------------------------------------------------------------- 1 | #ifndef _CPP_OP_GUI_W_GUI_H_ 2 | #define _CPP_OP_GUI_W_GUI_H_ 3 | 4 | #include "../shared.h" 5 | #include "../defines.h" 6 | 7 | DLLEXPORT void* op_WGui_new(const data_type dataType, 8 | const std::shared_ptr* gui) 9 | { 10 | const auto& tmp_gui = *gui; 11 | switch(dataType) 12 | { 13 | case data_type::Default: 14 | return new DefaultWGui(tmp_gui); 15 | case data_type::Custom: 16 | return new CustomWGui(tmp_gui); 17 | } 18 | 19 | return nullptr; 20 | } 21 | 22 | DLLEXPORT void op_WGui_delete(const data_type dataType, 23 | void* wGui) 24 | { 25 | switch(dataType) 26 | { 27 | case data_type::Default: 28 | delete ((DefaultWGui*)wGui); 29 | break; 30 | case data_type::Custom: 31 | delete ((CustomWGui*)wGui); 32 | break; 33 | } 34 | } 35 | 36 | #endif -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/pose/poseCpuRenderer.cpp: -------------------------------------------------------------------------------- 1 | #include "poseCpuRenderer.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/pose/poseExtractorCaffe.cpp: -------------------------------------------------------------------------------- 1 | #include "poseExtractorCaffe.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/pose/poseExtractorNet.cpp: -------------------------------------------------------------------------------- 1 | #include "poseExtractorNet.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/pose/poseExtractorNet.h: -------------------------------------------------------------------------------- 1 | #ifndef _CPP_OP_POSE_POSE_EXTRACTOR_NET_H_ 2 | #define _CPP_OP_POSE_POSE_EXTRACTOR_NET_H_ 3 | 4 | #include "../shared.h" 5 | 6 | DLLEXPORT void op_PoseExtractorNet_initializationOnThread(op::PoseExtractorNet* net) 7 | { 8 | net->initializationOnThread(); 9 | } 10 | 11 | DLLEXPORT op::Array* op_PoseExtractorNet_getPoseKeypoints(const op::PoseExtractorNet* net) 12 | { 13 | const auto ret = net->getPoseKeypoints(); 14 | return new op::Array(ret); 15 | } 16 | 17 | DLLEXPORT float op_PoseExtractorNet_getScaleNetToOutput(const op::PoseExtractorNet* net) 18 | { 19 | return net->getScaleNetToOutput(); 20 | } 21 | 22 | #endif -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/pose/poseGpuRenderer.cpp: -------------------------------------------------------------------------------- 1 | #include "poseGpuRenderer.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/pose/poseParameters.cpp: -------------------------------------------------------------------------------- 1 | #include "poseParameters.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/pose/poseRenderer.cpp: -------------------------------------------------------------------------------- 1 | #include "poseRenderer.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/pose/poseRenderer.h: -------------------------------------------------------------------------------- 1 | #ifndef _CPP_OP_POSE_POSE_RENDERER_H_ 2 | #define _CPP_OP_POSE_POSE_RENDERER_H_ 3 | 4 | #include "../shared.h" 5 | 6 | DLLEXPORT void op_PoseRenderer_initializationOnThread(op::PoseRenderer* renderer) 7 | { 8 | renderer->initializationOnThread(); 9 | } 10 | 11 | #endif -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/producer/datumProducer.cpp: -------------------------------------------------------------------------------- 1 | #include "datumProducer.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/producer/producer.cpp: -------------------------------------------------------------------------------- 1 | #include "producer.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/producer/videoCaptureReader.cpp: -------------------------------------------------------------------------------- 1 | #include "videoCaptureReader.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/producer/videoCaptureReader.h: -------------------------------------------------------------------------------- 1 | #ifndef _CPP_OP_PRODUCER_VIDEO_CAPTURE_READER_H_ 2 | #define _CPP_OP_PRODUCER_VIDEO_CAPTURE_READER_H_ 3 | 4 | #include "../shared.h" 5 | 6 | DLLEXPORT double op_VideoCaptureReader_get(op::VideoCaptureReader* reader, const int capProperty) 7 | { 8 | return reader->get(capProperty); 9 | } 10 | 11 | DLLEXPORT bool op_VideoCaptureReader_isOpened(op::VideoCaptureReader* reader) 12 | { 13 | return reader->isOpened(); 14 | } 15 | 16 | DLLEXPORT void op_VideoCaptureReader_release(op::VideoCaptureReader* reader) 17 | { 18 | return reader->release(); 19 | } 20 | 21 | #endif -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/producer/wDatumProducer.cpp: -------------------------------------------------------------------------------- 1 | #include "wDatumProducer.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/producer/wDatumProducer.h: -------------------------------------------------------------------------------- 1 | #ifndef _CPP_OP_PRODUCER_W_DATUM_PRODUCER_H_ 2 | #define _CPP_OP_PRODUCER_W_DATUM_PRODUCER_H_ 3 | 4 | #include "../shared.h" 5 | #include "../defines.h" 6 | 7 | DLLEXPORT void* op_WDatumProducer_new(const data_type dataType, 8 | void* datumProducer) 9 | { 10 | switch(dataType) 11 | { 12 | case data_type::Default: 13 | { 14 | auto& d = *static_cast*>(datumProducer); 15 | return new DefaultWDatumProducer(d); 16 | } 17 | case data_type::Custom: 18 | { 19 | auto& d = *static_cast*>(datumProducer); 20 | return new CustomWDatumProducer(d); 21 | } 22 | } 23 | 24 | return nullptr; 25 | } 26 | 27 | DLLEXPORT void op_WDatumProducer_delete(const data_type dataType, void* producer) 28 | { 29 | switch(dataType) 30 | { 31 | case data_type::Default: 32 | delete ((DefaultWDatumProducer*)producer); 33 | break; 34 | case data_type::Custom: 35 | delete ((CustomWDatumProducer*)producer); 36 | break; 37 | } 38 | } 39 | 40 | #endif -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/producer/webcamReader.cpp: -------------------------------------------------------------------------------- 1 | #include "webcamReader.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/producer/webcamReader.h: -------------------------------------------------------------------------------- 1 | #ifndef _CPP_OP_PRODUCER_WEBCAM_READER_H_ 2 | #define _CPP_OP_PRODUCER_WEBCAM_READER_H_ 3 | 4 | #include "../shared.h" 5 | 6 | DLLEXPORT double op_WebcamReader_get(op::WebcamReader* reader, const int capProperty) 7 | { 8 | return reader->get(capProperty); 9 | } 10 | 11 | DLLEXPORT bool op_WebcamReader_isOpened(op::WebcamReader* reader) 12 | { 13 | return reader->isOpened(); 14 | } 15 | 16 | #endif -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef _CPP_SHARED_H_ 2 | #define _CPP_SHARED_H_ 3 | 4 | #include 5 | #include 6 | 7 | #include "export.h" 8 | 9 | enum struct array_element_type : int 10 | { 11 | Float = 0, 12 | }; 13 | 14 | enum struct data_type : int 15 | { 16 | Default = 0, 17 | Custom = 1, 18 | }; 19 | 20 | #define ERR_OK 0x00000000 21 | 22 | // common 23 | #define ERR_COMMON_ERROR 0x70000000 24 | #define ERR_COMMON_TYPE_NOT_SUPPORT -(ERR_COMMON_ERROR | 0x00000001) 25 | 26 | #endif -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/std/array.cpp: -------------------------------------------------------------------------------- 1 | #include "array.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/std/chrono/time_point.cpp: -------------------------------------------------------------------------------- 1 | #include "time_point.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/std/chrono/time_point.h: -------------------------------------------------------------------------------- 1 | #ifndef _CPP_STD_CHRONO_TIME_POINT_H_ 2 | #define _CPP_STD_CHRONO_TIME_POINT_H_ 3 | 4 | #include "../../export.h" 5 | #include 6 | 7 | DLLEXPORT void std_chrono_time_point_delete(std::chrono::time_point* timePoint) 8 | { 9 | delete timePoint; 10 | } 11 | 12 | #endif -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/std/shared_ptr.cpp: -------------------------------------------------------------------------------- 1 | #include "shared_ptr.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/std/string.cpp: -------------------------------------------------------------------------------- 1 | #include "string.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/std/string.h: -------------------------------------------------------------------------------- 1 | #ifndef _CPP_STD_STRING_H_ 2 | #define _CPP_STD_STRING_H_ 3 | 4 | #include "../export.h" 5 | #include 6 | #include 7 | 8 | DLLEXPORT std::string* std_string_new() 9 | { 10 | return new std::string; 11 | } 12 | 13 | DLLEXPORT void std_string_append(std::string* str, const char* c_str, int len) 14 | { 15 | str->append(c_str, len); 16 | } 17 | 18 | DLLEXPORT const char* std_string_c_str(std::string* str) 19 | { 20 | return str->c_str(); 21 | } 22 | 23 | DLLEXPORT void std_string_delete(std::string* str) 24 | { 25 | delete str; 26 | } 27 | 28 | #endif -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/std/vector.cpp: -------------------------------------------------------------------------------- 1 | #include "vector.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/thread/threadManager.cpp: -------------------------------------------------------------------------------- 1 | #include "threadManager.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/user/user.cpp: -------------------------------------------------------------------------------- 1 | #include "user.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/user/userWorker.cpp: -------------------------------------------------------------------------------- 1 | #include "userWorker.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/user/userWorker.h: -------------------------------------------------------------------------------- 1 | #ifndef _CPP_OP_USER_USER_WORKER_H_ 2 | #define _CPP_OP_USER_USER_WORKER_H_ 3 | 4 | #include "../shared.h" 5 | #include "../defines.h" 6 | 7 | template 8 | class UserWorker : public op::Worker 9 | { 10 | public: 11 | UserWorker(void (*initializationOnThread_function)(), void (*process_function)(TDatums*)); 12 | 13 | ~UserWorker(); 14 | 15 | void initializationOnThread(); 16 | 17 | void work(TDatums& tDatums); 18 | 19 | private: 20 | void (*m_initializationOnThread_function)(); 21 | 22 | void (*m_process_function)(TDatums*); 23 | 24 | }; 25 | 26 | template 27 | UserWorker::UserWorker(void (*initializationOnThread_function)(), void (*process_function)(TDatums*)) : 28 | m_initializationOnThread_function(initializationOnThread_function), 29 | m_process_function(process_function) 30 | { 31 | } 32 | 33 | template 34 | UserWorker::~UserWorker() 35 | { 36 | } 37 | 38 | template 39 | void UserWorker::initializationOnThread() 40 | { 41 | this->m_initializationOnThread_function(); 42 | } 43 | 44 | template 45 | void UserWorker::work(TDatums& tDatums) 46 | { 47 | auto pDatums = &tDatums; 48 | this->m_process_function(pDatums); 49 | } 50 | 51 | typedef UserWorker DefaultUserWorker; 52 | typedef UserWorker CustomUserWorker; 53 | 54 | typedef std::shared_ptr DefaultDatumUserWorkerPtr; 55 | typedef std::shared_ptr CustomDatumUserWorkerPtr; 56 | 57 | #endif -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/user/userWorkerConsumer.cpp: -------------------------------------------------------------------------------- 1 | #include "userWorkerConsumer.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/user/userWorkerProducer.cpp: -------------------------------------------------------------------------------- 1 | #include "userWorkerProducer.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/utilities/check.cpp: -------------------------------------------------------------------------------- 1 | #include "check.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/utilities/check.h: -------------------------------------------------------------------------------- 1 | #ifndef _CPP_OP_UTILITIES_CHECK_H_ 2 | #define _CPP_OP_UTILITIES_CHECK_H_ 3 | 4 | #include "../shared.h" 5 | 6 | DLLEXPORT void op_checkBool(const bool condition, const char* message, const int line, const char* function, const char* file) 7 | { 8 | const std::string str_message(message); 9 | const std::string str_function(function); 10 | const std::string str_file(file); 11 | op::checkBool(condition, str_message, line, str_function, str_file); 12 | } 13 | 14 | #endif -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/utilities/errorAndLog.cpp: -------------------------------------------------------------------------------- 1 | #include "errorAndLog.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/utilities/flagsToOpenPose.cpp: -------------------------------------------------------------------------------- 1 | #include "flagsToOpenPose.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/utilities/profiler.cpp: -------------------------------------------------------------------------------- 1 | #include "profiler.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/wrapper/wrapper.cpp: -------------------------------------------------------------------------------- 1 | #include "wrapper.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/wrapper/wrapperStructExtra.cpp: -------------------------------------------------------------------------------- 1 | #include "wrapperStructExtra.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/wrapper/wrapperStructExtra.h: -------------------------------------------------------------------------------- 1 | #ifndef _CPP_OP_WRAPPER_WRAPPERSTRUCTEXTRA_H_ 2 | #define _CPP_OP_WRAPPER_WRAPPERSTRUCTEXTRA_H_ 3 | 4 | #include "../shared.h" 5 | 6 | DLLEXPORT op::WrapperStructExtra* op_wrapperStructExtra_new(const bool reconstruct3d, 7 | const int minViews3d, 8 | const bool identification, 9 | const int tracking, 10 | const int ikThreads) 11 | { 12 | return new op::WrapperStructExtra(reconstruct3d, 13 | minViews3d, 14 | identification, 15 | tracking, 16 | ikThreads); 17 | } 18 | 19 | DLLEXPORT void op_wrapperStructExtra_delete(op::WrapperStructExtra* extra) 20 | { 21 | delete extra; 22 | } 23 | 24 | #endif -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/wrapper/wrapperStructFace.cpp: -------------------------------------------------------------------------------- 1 | #include "wrapperStructFace.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/wrapper/wrapperStructFace.h: -------------------------------------------------------------------------------- 1 | #ifndef _CPP_OP_WRAPPER_WRAPPERSTRUCTFACE_H_ 2 | #define _CPP_OP_WRAPPER_WRAPPERSTRUCTFACE_H_ 3 | 4 | #include "../shared.h" 5 | 6 | DLLEXPORT op::WrapperStructFace* op_wrapperStructFace_new(const bool enable, 7 | const op::Detector detector, 8 | const op::Point* netInputSize, 9 | const op::RenderMode renderMode, 10 | const float alphaKeypoint, 11 | const float alphaHeatMap, 12 | const float renderThreshold) 13 | { 14 | return new op::WrapperStructFace(enable, 15 | detector, 16 | *netInputSize, 17 | renderMode, 18 | alphaKeypoint, 19 | alphaHeatMap, 20 | renderThreshold); 21 | } 22 | 23 | DLLEXPORT void op_wrapperStructFace_delete(op::WrapperStructFace* face) 24 | { 25 | delete face; 26 | } 27 | 28 | DLLEXPORT bool op_wrapperStructFace_get_enable(op::WrapperStructFace* face) 29 | { 30 | return face->enable; 31 | } 32 | 33 | DLLEXPORT void op_wrapperStructFace_set_enable(op::WrapperStructFace* face, const bool enable) 34 | { 35 | face->enable = enable; 36 | } 37 | 38 | #endif -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/wrapper/wrapperStructGui.cpp: -------------------------------------------------------------------------------- 1 | #include "wrapperStructGui.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/wrapper/wrapperStructGui.h: -------------------------------------------------------------------------------- 1 | #ifndef _CPP_OP_WRAPPER_WRAPPERSTRUCTGUI_H_ 2 | #define _CPP_OP_WRAPPER_WRAPPERSTRUCTGUI_H_ 3 | 4 | #include "../shared.h" 5 | 6 | DLLEXPORT op::WrapperStructGui* op_wrapperStructGui_new(const op::DisplayMode displayMode, 7 | const bool guiVerbose, 8 | const bool fullScreen) 9 | { 10 | return new op::WrapperStructGui(displayMode, 11 | guiVerbose, 12 | fullScreen); 13 | } 14 | 15 | DLLEXPORT void op_wrapperStructGui_delete(op::WrapperStructGui* gui) 16 | { 17 | delete gui; 18 | } 19 | 20 | #endif -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/wrapper/wrapperStructHand.cpp: -------------------------------------------------------------------------------- 1 | #include "wrapperStructHand.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/wrapper/wrapperStructInput.cpp: -------------------------------------------------------------------------------- 1 | #include "wrapperStructInput.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/wrapper/wrapperStructOutput.cpp: -------------------------------------------------------------------------------- 1 | #include "wrapperStructOutput.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet.Native/openpose/wrapper/wrapperStructPose.cpp: -------------------------------------------------------------------------------- 1 | #include "wrapperStructPose.h" -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Core/CvMatToOpOutput.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | // ReSharper disable once CheckNamespace 4 | namespace OpenPoseDotNet 5 | { 6 | 7 | public sealed class CvMatToOpOutput : OpenPoseObject 8 | { 9 | 10 | #region Constructors 11 | 12 | public CvMatToOpOutput() 13 | { 14 | this.NativePtr = NativeMethods.op_core_CvMatToOpOutput_new(); 15 | } 16 | 17 | #endregion 18 | 19 | #region Methods 20 | 21 | public Array CreateArray(Matrix cvInputData, double scaleInputToOutput, Point outputResolution) 22 | { 23 | if (cvInputData == null) 24 | throw new ArgumentNullException(nameof(cvInputData)); 25 | 26 | this.ThrowIfDisposed(); 27 | 28 | using (var resolution = outputResolution.ToNative()) 29 | { 30 | var ret = NativeMethods.op_core_CvMatToOpOutput_createArray(this.NativePtr, cvInputData.NativePtr, scaleInputToOutput, resolution.NativePtr); 31 | return new Array(ret); 32 | } 33 | } 34 | 35 | #region Overrides 36 | 37 | /// 38 | /// Releases all unmanaged resources. 39 | /// 40 | protected override void DisposeUnmanaged() 41 | { 42 | base.DisposeUnmanaged(); 43 | 44 | if (this.NativePtr == IntPtr.Zero) 45 | return; 46 | 47 | NativeMethods.op_core_CvMatToOpOutput_delete(this.NativePtr); 48 | } 49 | 50 | #endregion 51 | 52 | #endregion 53 | 54 | } 55 | 56 | } 57 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Core/HeatMapType.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public enum HeatMapType : byte 6 | { 7 | 8 | Parts, 9 | 10 | Background, 11 | 12 | PAFs, 13 | 14 | } 15 | 16 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Core/Macros.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public static partial class OpenPose 6 | { 7 | 8 | public static string OpenPoseName() 9 | { 10 | var ptr = NativeMethods.op_core_macros_get_OPEN_POSE_NAME_STRING(); 11 | return StringHelper.FromStdString(ptr, true); 12 | } 13 | 14 | public static string OpenPoseVersion() 15 | { 16 | var ptr = NativeMethods.op_core_macros_get_OPEN_POSE_VERSION_STRING(); 17 | return StringHelper.FromStdString(ptr, true); 18 | } 19 | 20 | public static string OpenPoseNameAndVersion() 21 | { 22 | var ptr = NativeMethods.op_core_macros_get_OPEN_POSE_NAME_AND_VERSION(); 23 | return StringHelper.FromStdString(ptr, true); 24 | } 25 | 26 | } 27 | 28 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Core/Matrix.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | // ReSharper disable once CheckNamespace 4 | namespace OpenPoseDotNet 5 | { 6 | 7 | public sealed class Matrix : OpenPoseObject 8 | { 9 | 10 | #region Constructors 11 | 12 | internal Matrix(IntPtr ptr, bool isEnabledDispose = true) : 13 | base(isEnabledDispose) 14 | { 15 | this.NativePtr = ptr; 16 | } 17 | 18 | #endregion 19 | 20 | #region Properties 21 | 22 | public bool Empty 23 | { 24 | get 25 | { 26 | this.ThrowIfDisposed(); 27 | return NativeMethods.op_core_Matrix_empty(this.NativePtr); 28 | } 29 | } 30 | 31 | #endregion 32 | 33 | #region Methods 34 | 35 | #region Overrides 36 | 37 | /// 38 | /// Releases all unmanaged resources. 39 | /// 40 | protected override void DisposeUnmanaged() 41 | { 42 | base.DisposeUnmanaged(); 43 | 44 | if (this.NativePtr == IntPtr.Zero) 45 | return; 46 | 47 | NativeMethods.op_core_Matrix_delete(this.NativePtr); 48 | } 49 | 50 | #endregion 51 | 52 | #endregion 53 | 54 | } 55 | 56 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Core/OpOutputToCvMat.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | // ReSharper disable once CheckNamespace 4 | namespace OpenPoseDotNet 5 | { 6 | 7 | public sealed class OpOutputToCvMat : OpenPoseObject 8 | { 9 | 10 | #region Constructors 11 | 12 | public OpOutputToCvMat() 13 | { 14 | this.NativePtr = NativeMethods.op_core_OpOutputToCvMat_new(); 15 | } 16 | 17 | #endregion 18 | 19 | #region Methods 20 | 21 | public Matrix FormatToCvMat(Array outputData) 22 | { 23 | if (outputData == null) 24 | throw new ArgumentNullException(nameof(outputData)); 25 | 26 | outputData.ThrowIfDisposed(); 27 | 28 | var ret = NativeMethods.op_core_OpOutputToCvMat_formatToCvMat(this.NativePtr, outputData.NativePtr); 29 | return new Matrix(ret); 30 | } 31 | 32 | #region Overrides 33 | 34 | /// 35 | /// Releases all unmanaged resources. 36 | /// 37 | protected override void DisposeUnmanaged() 38 | { 39 | base.DisposeUnmanaged(); 40 | 41 | if (this.NativePtr == IntPtr.Zero) 42 | return; 43 | 44 | NativeMethods.op_core_OpOutputToCvMat_delete(this.NativePtr); 45 | } 46 | 47 | #endregion 48 | 49 | #endregion 50 | 51 | } 52 | 53 | } 54 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Core/OpenPose.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | // ReSharper disable once CheckNamespace 6 | namespace OpenPoseDotNet 7 | { 8 | 9 | public static partial class OpenPose 10 | { 11 | 12 | #region Methods 13 | 14 | #region Matrix 15 | 16 | public static Mat OP_OP2CVCONSTMAT(Matrix cvMat) 17 | { 18 | if (cvMat == null) 19 | throw new ArgumentNullException(nameof(cvMat)); 20 | var ret = NativeMethods.op_core_Matrix_OP_OP2CVCONSTMAT(cvMat.NativePtr); 21 | return new Mat(ret); 22 | } 23 | 24 | public static Mat OP_OP2CVMAT(Matrix cvMat) 25 | { 26 | if (cvMat == null) 27 | throw new ArgumentNullException(nameof(cvMat)); 28 | var ret = NativeMethods.op_core_Matrix_OP_OP2CVMAT(cvMat.NativePtr); 29 | return new Mat(ret); 30 | } 31 | 32 | public static Matrix OP_CV2OPCONSTMAT(Mat cvMat) 33 | { 34 | if (cvMat == null) 35 | throw new ArgumentNullException(nameof(cvMat)); 36 | var ret = NativeMethods.op_core_Matrix_OP_CV2OPCONSTMAT(cvMat.NativePtr); 37 | return new Matrix(ret); 38 | } 39 | 40 | #endregion 41 | 42 | #endregion 43 | 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Core/RenderMode.cs: -------------------------------------------------------------------------------- 1 |  2 | // ReSharper disable once CheckNamespace 3 | namespace OpenPoseDotNet 4 | { 5 | 6 | public enum RenderMode : byte 7 | { 8 | 9 | None, 10 | 11 | Cpu, 12 | 13 | Gpu 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Core/ScaleMode.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public enum ScaleMode : byte 6 | { 7 | 8 | InputResolution, 9 | 10 | NetOutputResolution, 11 | 12 | OutputResolution, 13 | 14 | ZeroToOne, // [0, 1] 15 | 16 | PlusMinusOne, // [-1, 1] 17 | 18 | UnsignedChar, // [0, 255] 19 | 20 | NoScale 21 | 22 | } 23 | 24 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Cv/Colormap.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public enum ColormapType 6 | { 7 | 8 | COLORMAP_AUTUMN = 0, 9 | 10 | COLORMAP_BONE = 1, 11 | 12 | COLORMAP_JET = 2, 13 | 14 | COLORMAP_WINTER = 3, 15 | 16 | COLORMAP_RAINBOW = 4, 17 | 18 | COLORMAP_OCEAN = 5, 19 | 20 | COLORMAP_SUMMER = 6, 21 | 22 | COLORMAP_SPRING = 7, 23 | 24 | COLORMAP_COOL = 8, 25 | 26 | COLORMAP_HSV = 9, 27 | 28 | COLORMAP_PINK = 10, 29 | 30 | COLORMAP_HOT = 11, 31 | 32 | COLORMAP_PARULA = 12, 33 | 34 | COLORMAP_MAGMA = 13, 35 | 36 | COLORMAP_INFERNO = 14, 37 | 38 | COLORMAP_PLASMA = 15, 39 | 40 | COLORMAP_VIRIDIS = 16, 41 | 42 | COLORMAP_CIVIDIS = 17, 43 | 44 | COLORMAP_TWILIGHT = 18, 45 | 46 | COLORMAP_TWILIGHT_SHIFTED = 19 47 | 48 | } 49 | 50 | } 51 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/DatumType.cs: -------------------------------------------------------------------------------- 1 | namespace OpenPoseDotNet 2 | { 3 | 4 | internal enum DatumType 5 | { 6 | 7 | Default, 8 | 9 | Custom 10 | 11 | } 12 | 13 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Face/OpenPose.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public static partial class OpenPose 6 | { 7 | 8 | #region Fields 9 | 10 | public const float FaceDefaultAlphaKeyPoint = PoseDefaultAlphaKeyPoint; 11 | 12 | public const float FaceDefaultAlphaHeatMap = PoseDefaultAlphaHeatMap; 13 | 14 | #endregion 15 | 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/FileStream/DataFormat.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public enum DataFormat : byte 6 | { 7 | 8 | Json, 9 | 10 | Xml, 11 | 12 | Yaml, 13 | 14 | Yml 15 | 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/FileStream/OpenPose.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using System.Text; 4 | 5 | // ReSharper disable once CheckNamespace 6 | namespace OpenPoseDotNet 7 | { 8 | 9 | public static partial class OpenPose 10 | { 11 | 12 | #region Methods 13 | 14 | #region filestream/filestream 15 | 16 | public static Matrix LoadImage(string path, LoadImageFlag flag) 17 | { 18 | if (path == null) 19 | throw new ArgumentNullException(nameof(path)); 20 | if (!File.Exists(path)) 21 | throw new FileNotFoundException($"'{path}' is not found."); 22 | 23 | var pathBytes = Encoding.UTF8.GetBytes(path); 24 | var ret = NativeMethods.op_loadImage(pathBytes, flag); 25 | return new Matrix(ret); 26 | } 27 | 28 | public static DataFormat StringToDataFormat(string dataFormat) 29 | { 30 | if (dataFormat == null) 31 | throw new ArgumentNullException(nameof(dataFormat)); 32 | 33 | var dataFormatBytes = Encoding.UTF8.GetBytes(dataFormat); 34 | 35 | return NativeMethods.op_stringToDataFormat(dataFormatBytes); 36 | } 37 | 38 | #endregion 39 | 40 | #endregion 41 | 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Gpu/GpuMode.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public enum GpuMode : byte 6 | { 7 | 8 | Cuda = 0, 9 | 10 | OpenCL = 1, 11 | 12 | NoGpu = 2 13 | 14 | } 15 | 16 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Gpu/OpenPose.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public static partial class OpenPose 6 | { 7 | 8 | #region Methods 9 | 10 | public static int GetGpuNumber() 11 | { 12 | return NativeMethods.op_getGpuNumber(); 13 | } 14 | 15 | public static GpuMode GetGpuMode() 16 | { 17 | return NativeMethods.op_getGpuMode(); 18 | } 19 | 20 | #endregion 21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Gui/DisplayMode.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public enum DisplayMode : ushort 6 | { 7 | 8 | NoDisplay, /**< No display. */ 9 | 10 | DisplayAll, /**< All (2-D and 3-D/Adam) displays */ 11 | 12 | Display2D, /**< Only 2-D display. */ 13 | 14 | Display3D, /**< Only 3-D display. */ 15 | 16 | DisplayAdam /**< Only Adam display. */ 17 | 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Gui/FullScreenMode.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public enum FullScreenMode : byte 6 | { 7 | 8 | FullScreen, /**< Full screen mode. */ 9 | 10 | Windowed, /**< Windowed mode, depending on the frame output size. */ 11 | 12 | } 13 | 14 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Gui/WGui.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | // ReSharper disable once CheckNamespace 4 | namespace OpenPoseDotNet 5 | { 6 | 7 | public sealed class WGui : WorkerConsumer 8 | where T : Datum 9 | { 10 | 11 | #region Fields 12 | 13 | private readonly OpenPose.DataType _DataType; 14 | 15 | #endregion 16 | 17 | #region Constructors 18 | 19 | public WGui(StdSharedPtr gui) 20 | { 21 | if (gui == null) 22 | throw new ArgumentNullException(nameof(gui)); 23 | 24 | gui.ThrowIfDisposed(); 25 | 26 | this._DataType = GenericHelpers.CheckDatumSupportTypes(); 27 | this.NativePtr = NativeMethods.op_WGui_new(this._DataType, gui.NativePtr); 28 | } 29 | 30 | internal WGui(IntPtr ptr, bool isEnabledDispose = true) : 31 | base(ptr, isEnabledDispose) 32 | { 33 | this.NativePtr = ptr; 34 | } 35 | 36 | #endregion 37 | 38 | #region Methods 39 | 40 | #region Overrides 41 | 42 | /// 43 | /// Releases all unmanaged resources. 44 | /// 45 | protected override void DisposeUnmanaged() 46 | { 47 | base.DisposeUnmanaged(); 48 | 49 | if (this.NativePtr == IntPtr.Zero) 50 | return; 51 | 52 | NativeMethods.op_WGui_delete(this._DataType, this.NativePtr); 53 | } 54 | 55 | #endregion 56 | 57 | #endregion 58 | 59 | } 60 | 61 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Hand/OpenPose.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public static partial class OpenPose 6 | { 7 | 8 | #region Fields 9 | 10 | public const float HandDefaultAlphaKeyPoint = PoseDefaultAlphaKeyPoint; 11 | 12 | public const float HandDefaultAlphaHeatMap = PoseDefaultAlphaHeatMap; 13 | 14 | #endregion 15 | 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Helpers/GenericHelpers.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | // ReSharper disable once CheckNamespace 5 | namespace OpenPoseDotNet 6 | { 7 | 8 | internal static class GenericHelpers 9 | { 10 | 11 | #region Fields 12 | 13 | private static readonly Dictionary DatumSupportTypes = new Dictionary(); 14 | 15 | #endregion 16 | 17 | #region Constructors 18 | 19 | static GenericHelpers() 20 | { 21 | var datumSupportTypes = new[] 22 | { 23 | new { Type = typeof(Datum), ElementType = DatumType.Default }, 24 | new { Type = typeof(CustomDatum), ElementType = DatumType.Custom } 25 | }; 26 | 27 | foreach (var type in datumSupportTypes) 28 | DatumSupportTypes.Add(type.Type, type.ElementType); 29 | } 30 | 31 | #endregion 32 | 33 | #region Methods 34 | 35 | public static OpenPose.DataType CheckDatumSupportTypes() 36 | { 37 | if (DatumSupportTypes.TryGetValue(typeof(T), out var type)) 38 | { 39 | switch (type) 40 | { 41 | case DatumType.Default: 42 | return OpenPose.DataType.Default; 43 | case DatumType.Custom: 44 | return OpenPose.DataType.Custom; 45 | } 46 | } 47 | 48 | throw new NotSupportedException($"{typeof(T).Name} does not support"); 49 | } 50 | 51 | #endregion 52 | 53 | } 54 | 55 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Helpers/StringHelper.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | // ReSharper disable once CheckNamespace 5 | namespace OpenPoseDotNet 6 | { 7 | 8 | internal static class StringHelper 9 | { 10 | 11 | #region Methods 12 | 13 | public static string FromStdString(IntPtr ptr, bool dispose = false) 14 | { 15 | // Need not to delete str 16 | // Because string.c_str returns inner memory of string instance. 17 | // This inner memory will be deleted when string instance is deleted. 18 | var str = NativeMethods.std_string_c_str(ptr); 19 | var ret = Marshal.PtrToStringAnsi(str); 20 | if (dispose && ptr != IntPtr.Zero) 21 | NativeMethods.std_string_delete(ptr); 22 | return ret; 23 | } 24 | 25 | #endregion 26 | 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/IOpenPoseObject.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace OpenPoseDotNet 4 | { 5 | 6 | /// 7 | /// Defines methods and properties to represent the openpose objects. 8 | /// 9 | public interface IOpenPoseObject : IDisposable 10 | { 11 | 12 | #region Properties 13 | 14 | /// 15 | /// Gets a pointer of native structure. 16 | /// > 17 | IntPtr NativePtr 18 | { 19 | get; 20 | } 21 | 22 | #endregion 23 | 24 | #region Methods 25 | 26 | /// 27 | /// If this object is disposed, then is thrown. 28 | /// 29 | void ThrowIfDisposed(); 30 | 31 | #endregion 32 | 33 | } 34 | 35 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/LoadImageFlag.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public enum LoadImageFlag 6 | { 7 | 8 | LoadImageGrayscale = 0, 9 | 10 | LoadImageColor = 1, 11 | 12 | LoadImageAnyDepth = 2 13 | 14 | } 15 | 16 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/OpenPose.cs: -------------------------------------------------------------------------------- 1 | namespace OpenPoseDotNet 2 | { 3 | 4 | public static partial class OpenPose 5 | { 6 | 7 | internal sealed class Native 8 | { 9 | 10 | internal enum ErrorType 11 | { 12 | 13 | OK = 0x00000000, 14 | 15 | #region Common 16 | 17 | CommonError = 0x70000000, 18 | 19 | CommonErrorTypeNotSupport = -(CommonError | 0x00000001) 20 | 21 | #endregion 22 | 23 | } 24 | 25 | } 26 | 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/PInvoke/3D/CameraParameterReader.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | // ReSharper disable once CheckNamespace 5 | namespace OpenPoseDotNet 6 | { 7 | 8 | internal sealed partial class NativeMethods 9 | { 10 | 11 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 12 | public static extern IntPtr op_CameraParameterReader_new(); 13 | 14 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 15 | public static extern void op_CameraParameterReader_delete(IntPtr parameter); 16 | 17 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 18 | public static extern UInt64 op_CameraParameterReader_getNumberCameras(IntPtr parameter); 19 | 20 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 21 | [return: MarshalAs(UnmanagedType.U1)] 22 | public static extern bool op_CameraParameterReader_getUndistortImage(IntPtr parameter); 23 | 24 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 25 | public static extern void op_CameraParameterReader_setUndistortImage(IntPtr parameter, bool undistortImage); 26 | 27 | } 28 | 29 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/PInvoke/CStd/NativeMethods.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | using System.Security; 4 | 5 | // ReSharper disable once CheckNamespace 6 | namespace OpenPoseDotNet 7 | { 8 | 9 | internal sealed partial class NativeMethods 10 | { 11 | 12 | [SuppressUnmanagedCodeSecurity] 13 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 14 | public static extern IntPtr cstd_memcpy(IntPtr dest, IntPtr src, int count); 15 | 16 | [SuppressUnmanagedCodeSecurity] 17 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 18 | public static extern unsafe IntPtr cstd_memcpy(byte* dest, IntPtr src, int count); 19 | 20 | [SuppressUnmanagedCodeSecurity] 21 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 22 | public static extern unsafe IntPtr cstd_memcpy(byte* dest, byte* src, int count); 23 | 24 | } 25 | 26 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/PInvoke/Core/CvMatToOpInput.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | // ReSharper disable once CheckNamespace 5 | namespace OpenPoseDotNet 6 | { 7 | 8 | internal sealed partial class NativeMethods 9 | { 10 | 11 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 12 | public static extern IntPtr op_core_CvMatToOpInput_new(PoseModel poseModel); 13 | 14 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 15 | public static extern void op_core_CvMatToOpInput_delete(IntPtr extractor); 16 | 17 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 18 | public static extern IntPtr op_core_CvMatToOpInput_createArray(IntPtr output, 19 | IntPtr cvInputData, 20 | IntPtr scaleInputToNetInputs, 21 | IntPtr netInputSizes); 22 | 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/PInvoke/Core/CvMatToOpOutput.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | // ReSharper disable once CheckNamespace 5 | namespace OpenPoseDotNet 6 | { 7 | 8 | internal sealed partial class NativeMethods 9 | { 10 | 11 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 12 | public static extern IntPtr op_core_CvMatToOpOutput_new(); 13 | 14 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 15 | public static extern void op_core_CvMatToOpOutput_delete(IntPtr extractor); 16 | 17 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 18 | public static extern IntPtr op_core_CvMatToOpOutput_createArray(IntPtr output, 19 | IntPtr cvInputData, 20 | double scaleInputToOutput, 21 | IntPtr outputResolution); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/PInvoke/Core/Macros.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | // ReSharper disable once CheckNamespace 5 | namespace OpenPoseDotNet 6 | { 7 | 8 | internal sealed partial class NativeMethods 9 | { 10 | 11 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 12 | public static extern IntPtr op_core_macros_get_OPEN_POSE_NAME_STRING(); 13 | 14 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 15 | public static extern IntPtr op_core_macros_get_OPEN_POSE_VERSION_STRING(); 16 | 17 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 18 | public static extern IntPtr op_core_macros_get_OPEN_POSE_NAME_AND_VERSION(); 19 | 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/PInvoke/Core/Matrix.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | // ReSharper disable once CheckNamespace 5 | namespace OpenPoseDotNet 6 | { 7 | 8 | internal sealed partial class NativeMethods 9 | { 10 | 11 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 12 | public static extern void op_core_Matrix_delete(IntPtr mat); 13 | 14 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 15 | [return: MarshalAs(UnmanagedType.U1)] 16 | public static extern bool op_core_Matrix_empty(IntPtr mat); 17 | 18 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 19 | public static extern IntPtr op_core_Matrix_OP_OP2CVCONSTMAT(IntPtr mat); 20 | 21 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 22 | public static extern IntPtr op_core_Matrix_OP_OP2CVMAT(IntPtr mat); 23 | 24 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 25 | public static extern IntPtr op_core_Matrix_OP_CV2OPCONSTMAT(IntPtr mat); 26 | 27 | } 28 | 29 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/PInvoke/Core/OpOutputToCvMat.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | // ReSharper disable once CheckNamespace 5 | namespace OpenPoseDotNet 6 | { 7 | 8 | internal sealed partial class NativeMethods 9 | { 10 | 11 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 12 | public static extern IntPtr op_core_OpOutputToCvMat_new(); 13 | 14 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 15 | public static extern void op_core_OpOutputToCvMat_delete(IntPtr mat); 16 | 17 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 18 | public static extern IntPtr op_core_OpOutputToCvMat_formatToCvMat(IntPtr mat, IntPtr outputData); 19 | 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/PInvoke/Core/ScaleAndSizeExtractor.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | // ReSharper disable once CheckNamespace 5 | namespace OpenPoseDotNet 6 | { 7 | 8 | internal sealed partial class NativeMethods 9 | { 10 | 11 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 12 | public static extern IntPtr op_core_ScaleAndSizeExtractor_new(IntPtr netInputResolution, 13 | IntPtr outputResolution, 14 | int scaleNumber, 15 | double scaleGap); 16 | 17 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 18 | public static extern void op_core_ScaleAndSizeExtractor_delete(IntPtr extractor); 19 | 20 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 21 | public static extern void op_core_ScaleAndSizeExtractor_extract(IntPtr extractor, 22 | IntPtr inputResolution, 23 | out IntPtr vector, 24 | out IntPtr points, 25 | out double value, 26 | out int x, 27 | out int y); 28 | 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/PInvoke/Custom/CustomDatum.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | // ReSharper disable once CheckNamespace 5 | namespace OpenPoseDotNet 6 | { 7 | 8 | internal sealed partial class NativeMethods 9 | { 10 | 11 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 12 | public static extern IntPtr op_CustomDatum_new(); 13 | 14 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 15 | public static extern void op_CustomDatum_delete(IntPtr datum); 16 | 17 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 18 | public static extern IntPtr op_CustomDatum_get_data(IntPtr datum); 19 | 20 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 21 | public static extern void op_CustomDatum_set_data(IntPtr datum, IntPtr data); 22 | 23 | } 24 | 25 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/PInvoke/Cv/MatExpr.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | // ReSharper disable once CheckNamespace 5 | namespace OpenPoseDotNet 6 | { 7 | 8 | internal sealed partial class NativeMethods 9 | { 10 | 11 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 12 | public static extern void op_3rdparty_cv_MatExpr_delete(IntPtr expr); 13 | 14 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 15 | public static extern IntPtr op_3rdparty_cv_MatExpr_toMat(IntPtr expr); 16 | 17 | #region Operators 18 | 19 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 20 | public static extern IntPtr op_3rdparty_cv_MatExpr_operator_add(IntPtr lhs, double rhs); 21 | 22 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 23 | public static extern IntPtr op_3rdparty_cv_MatExpr_operator_multiply_int32_t(IntPtr lhs, int rhs); 24 | 25 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 26 | public static extern IntPtr op_3rdparty_cv_MatExpr_operator_multiply_double(IntPtr lhs, double rhs); 27 | 28 | #endregion 29 | 30 | } 31 | 32 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/PInvoke/FileStream/NativeMethods.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | // ReSharper disable once CheckNamespace 5 | namespace OpenPoseDotNet 6 | { 7 | 8 | internal sealed partial class NativeMethods 9 | { 10 | 11 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 12 | public static extern IntPtr op_loadImage(byte[] fullFilePath, LoadImageFlag openCvFlags); 13 | 14 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 15 | public static extern DataFormat op_stringToDataFormat(byte[] dataFormat); 16 | 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/PInvoke/Gpu/Gpu.cs: -------------------------------------------------------------------------------- 1 | using System.Runtime.InteropServices; 2 | 3 | // ReSharper disable once CheckNamespace 4 | namespace OpenPoseDotNet 5 | { 6 | 7 | internal sealed partial class NativeMethods 8 | { 9 | 10 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 11 | public static extern int op_getGpuNumber(); 12 | 13 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 14 | public static extern GpuMode op_getGpuMode(); 15 | 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/PInvoke/Gui/FrameDisplayer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | // ReSharper disable once CheckNamespace 5 | namespace OpenPoseDotNet 6 | { 7 | 8 | internal sealed partial class NativeMethods 9 | { 10 | 11 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 12 | public static extern IntPtr op_FrameDisplayer_new(byte[] windowedName, 13 | IntPtr initialWindowedSize, 14 | bool fullScreen); 15 | 16 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 17 | public static extern void op_FrameDisplayer_delete(IntPtr caffe); 18 | 19 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 20 | public static extern void op_FrameDisplayer_displayFrame(IntPtr displayer, IntPtr frame, int waitKeyValue); 21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/PInvoke/Gui/Gui.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | // ReSharper disable once CheckNamespace 5 | namespace OpenPoseDotNet 6 | { 7 | 8 | internal sealed partial class NativeMethods 9 | { 10 | 11 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 12 | public static extern IntPtr op_Gui_new(IntPtr outputSize, 13 | bool fullScreen, 14 | IntPtr isRunningSharedPtr, 15 | IntPtr videoSeekSharedPtr, 16 | IntPtr poseExtractorNets, 17 | IntPtr faceExtractorNets, 18 | IntPtr handExtractorNets, 19 | IntPtr renderers, 20 | DisplayMode displayMode); 21 | 22 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 23 | public static extern void op_Gui_delete(IntPtr gui); 24 | 25 | } 26 | 27 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/PInvoke/Gui/WGui.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | // ReSharper disable once CheckNamespace 5 | namespace OpenPoseDotNet 6 | { 7 | 8 | internal sealed partial class NativeMethods 9 | { 10 | 11 | #region op::WGui 12 | 13 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 14 | public static extern IntPtr op_WGui_new(OpenPose.DataType dataType, IntPtr gui); 15 | 16 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 17 | public static extern void op_WGui_delete(OpenPose.DataType dataType, IntPtr wgui); 18 | 19 | #endregion 20 | 21 | } 22 | 23 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/PInvoke/NativeMethods.cs: -------------------------------------------------------------------------------- 1 | using System.Runtime.InteropServices; 2 | 3 | // ReSharper disable once CheckNamespace 4 | namespace OpenPoseDotNet 5 | { 6 | 7 | internal sealed partial class NativeMethods 8 | { 9 | 10 | #region Fields 11 | 12 | /// 13 | /// Native library file name. 14 | /// If Linux, it will be converted to libOpenPoseDotNetNative.so 15 | /// If MacOSX, it will be converted to libOpenPoseDotNetNative.dylib 16 | /// If Windows, it will be available after call LoadLibrary. 17 | /// And this file name must not contain period. If it does, 18 | /// CLR does not add extension (.dll) and CLR fails to load library 19 | /// 20 | internal const string NativeLibrary = "OpenPoseDotNetNative"; 21 | 22 | internal const CallingConvention CallingConvention = System.Runtime.InteropServices.CallingConvention.Cdecl; 23 | 24 | private static readonly WindowsLibraryLoader WindowsLibraryLoader = new WindowsLibraryLoader(); 25 | 26 | #endregion 27 | 28 | #region Constructors 29 | 30 | static NativeMethods() 31 | { 32 | WindowsLibraryLoader.LoadLibraries(new[] 33 | { 34 | $"{NativeLibrary}" 35 | }); 36 | } 37 | 38 | #endregion 39 | 40 | } 41 | 42 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/PInvoke/Pose/PoseExtractorNet.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | // ReSharper disable once CheckNamespace 5 | namespace OpenPoseDotNet 6 | { 7 | 8 | internal sealed partial class NativeMethods 9 | { 10 | 11 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 12 | public static extern void op_PoseExtractorNet_initializationOnThread(IntPtr net); 13 | 14 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 15 | public static extern IntPtr op_PoseExtractorNet_getPoseKeypoints(IntPtr net); 16 | 17 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 18 | public static extern float op_PoseExtractorNet_getScaleNetToOutput(IntPtr net); 19 | 20 | } 21 | 22 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/PInvoke/Producer/Producer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | // ReSharper disable once CheckNamespace 5 | namespace OpenPoseDotNet 6 | { 7 | 8 | internal sealed partial class NativeMethods 9 | { 10 | 11 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 12 | public static extern double op_Producer_get(IntPtr producer, int capProperty); 13 | 14 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 15 | public static extern void op_Producer_setProducerFpsMode(IntPtr producer, ProducerFpsMode fpsMode); 16 | 17 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 18 | [return: MarshalAs(UnmanagedType.U1)] 19 | public static extern bool op_Producer_isOpened(IntPtr producer); 20 | 21 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 22 | public static extern void op_Producer_release(IntPtr producer); 23 | 24 | } 25 | 26 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/PInvoke/Producer/VideoCaptureReader.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | // ReSharper disable once CheckNamespace 5 | namespace OpenPoseDotNet 6 | { 7 | 8 | internal sealed partial class NativeMethods 9 | { 10 | 11 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 12 | public static extern double op_VideoCaptureReader_get(IntPtr reader, int capProperty); 13 | 14 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 15 | [return: MarshalAs(UnmanagedType.U1)] 16 | public static extern bool op_VideoCaptureReader_isOpened(IntPtr reader); 17 | 18 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 19 | public static extern void op_VideoCaptureReader_release(IntPtr reader); 20 | 21 | } 22 | 23 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/PInvoke/Producer/WebcamReader.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | // ReSharper disable once CheckNamespace 5 | namespace OpenPoseDotNet 6 | { 7 | 8 | internal sealed partial class NativeMethods 9 | { 10 | 11 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 12 | public static extern double op_WebcamReader_get(IntPtr reader, int capProperty); 13 | 14 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 15 | [return: MarshalAs(UnmanagedType.U1)] 16 | public static extern bool op_WebcamReader_isOpened(IntPtr reader); 17 | 18 | } 19 | 20 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/PInvoke/StdLib/Chrono/StdLib.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | // ReSharper disable once CheckNamespace 5 | namespace OpenPoseDotNet 6 | { 7 | 8 | internal sealed partial class NativeMethods 9 | { 10 | 11 | #region string 12 | 13 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 14 | public static extern void std_chrono_time_point_delete(IntPtr timePoint); 15 | 16 | #endregion 17 | 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/PInvoke/StdLib/NativeMethods.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | // ReSharper disable once CheckNamespace 5 | namespace OpenPoseDotNet 6 | { 7 | 8 | internal sealed partial class NativeMethods 9 | { 10 | 11 | #region std::shared_ptr 12 | 13 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 14 | public static extern IntPtr std_shared_ptr_TDatum_get(OpenPose.DataType dataType, IntPtr p); 15 | 16 | #endregion 17 | 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/PInvoke/Utilities/ConfigureError.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | // ReSharper disable once CheckNamespace 5 | namespace OpenPoseDotNet 6 | { 7 | 8 | internal sealed partial class NativeMethods 9 | { 10 | 11 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 12 | public static extern IntPtr op_ConfigureError_getErrorModes(); 13 | 14 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 15 | public static extern void op_ConfigureError_setErrorModes(IntPtr errorModes); 16 | 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/PInvoke/Utilities/ConfigureLog.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | // ReSharper disable once CheckNamespace 5 | namespace OpenPoseDotNet 6 | { 7 | 8 | internal sealed partial class NativeMethods 9 | { 10 | 11 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 12 | public static extern Priority op_ConfigureLog_getPriorityThreshold(); 13 | 14 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 15 | public static extern IntPtr op_ConfigureLog_getLogModes(); 16 | 17 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 18 | public static extern void op_ConfigureLog_setPriorityThreshold(Priority priorityThreshold); 19 | 20 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 21 | public static extern void op_ConfigureLog_setLogModes(IntPtr loggingModes); 22 | 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/PInvoke/Wrapper/WrapperStructExtra.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | // ReSharper disable once CheckNamespace 5 | namespace OpenPoseDotNet 6 | { 7 | 8 | internal sealed partial class NativeMethods 9 | { 10 | 11 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 12 | public static extern IntPtr op_wrapperStructExtra_new(bool reconstruct3d, 13 | int minViews3d, 14 | bool identification, 15 | int tracking, 16 | int ikThreads); 17 | 18 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 19 | public static extern void op_wrapperStructExtra_delete(IntPtr face); 20 | 21 | } 22 | 23 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/PInvoke/Wrapper/WrapperStructFace.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | // ReSharper disable once CheckNamespace 5 | namespace OpenPoseDotNet 6 | { 7 | 8 | internal sealed partial class NativeMethods 9 | { 10 | 11 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 12 | public static extern IntPtr op_wrapperStructFace_new(bool enable, 13 | Detector detector, 14 | IntPtr netInputSize, 15 | RenderMode renderMode, 16 | float alphaKeyPoint, 17 | float alphaHeatMap, 18 | float renderThreshold); 19 | 20 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 21 | public static extern void op_wrapperStructFace_delete(IntPtr face); 22 | 23 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 24 | [return: MarshalAs(UnmanagedType.U1)] 25 | public static extern bool op_wrapperStructFace_get_enable(IntPtr face); 26 | 27 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 28 | public static extern void op_wrapperStructFace_set_enable(IntPtr face, bool enable); 29 | 30 | } 31 | 32 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/PInvoke/Wrapper/WrapperStructGui.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | // ReSharper disable once CheckNamespace 5 | namespace OpenPoseDotNet 6 | { 7 | 8 | internal sealed partial class NativeMethods 9 | { 10 | 11 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 12 | public static extern IntPtr op_wrapperStructGui_new(DisplayMode displayMode, 13 | bool guiVerbose, 14 | bool fullScreen); 15 | 16 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 17 | public static extern void op_wrapperStructGui_delete(IntPtr face); 18 | 19 | } 20 | 21 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/PInvoke/Wrapper/WrapperStructInput.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | // ReSharper disable once CheckNamespace 5 | namespace OpenPoseDotNet 6 | { 7 | 8 | internal sealed partial class NativeMethods 9 | { 10 | 11 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 12 | public static extern IntPtr op_wrapperStructInput_new(ProducerType producerType, 13 | byte[] producerString, 14 | ulong frameFirst, 15 | ulong frameStep, 16 | ulong frameLast, 17 | bool realTimeProcessing, 18 | bool frameFlip, 19 | int frameRotate, 20 | bool framesRepeat, 21 | IntPtr cameraResolution, 22 | byte[] cameraParameterPath, 23 | bool undistortImage, 24 | int numberViews); 25 | 26 | [DllImport(NativeLibrary, CallingConvention = CallingConvention)] 27 | public static extern void op_wrapperStructInput_delete(IntPtr face); 28 | 29 | } 30 | 31 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Pose/IGpuRenderer.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public interface IGpuRenderer : IRenderer 6 | { 7 | } 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Pose/IRenderer.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public interface IRenderer 6 | { 7 | 8 | void SetElementToRender(int elementToRender); 9 | 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Pose/OpenPose.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public static partial class OpenPose 6 | { 7 | 8 | #region Fields 9 | 10 | public const float PoseDefaultAlphaKeyPoint = 0.6f; 11 | 12 | public const float PoseDefaultAlphaHeatMap = 0.7f; 13 | 14 | #endregion 15 | 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Pose/PoseBody19BodyPart.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public enum PoseBody19BodyPart 6 | { 7 | 8 | Nose = 0, 9 | 10 | Neck = 1, 11 | 12 | RightShoulder = 2, 13 | 14 | RightElbow = 3, 15 | 16 | RightWrist = 4, 17 | 18 | LeftShoulder = 5, 19 | 20 | LeftElbow = 6, 21 | 22 | LeftWrist = 7, 23 | 24 | MidHip = 8, 25 | 26 | RightHip = 9, 27 | 28 | RightKnee = 10, 29 | 30 | RightAnkle = 11, 31 | 32 | LeftHip = 12, 33 | 34 | LeftKnee = 13, 35 | 36 | LeftAnkle = 14, 37 | 38 | RightEye = 15, 39 | 40 | LeftEye = 16, 41 | 42 | RightEar = 17, 43 | 44 | LeftEar = 18, 45 | 46 | Background = 19, 47 | 48 | } 49 | 50 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Pose/PoseBody23BodyPart.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public enum PoseBody23BodyPart 6 | { 7 | 8 | Nose = 0, 9 | 10 | RightShoulder = 1, 11 | 12 | RightElbow = 2, 13 | 14 | RightWrist = 3, 15 | 16 | LeftShoulder = 4, 17 | 18 | LeftElbow = 5, 19 | 20 | LeftWrist = 6, 21 | 22 | RightHip = 7, 23 | 24 | RightKnee = 8, 25 | 26 | RightAnkle = 9, 27 | 28 | LeftHip = 10, 29 | 30 | LeftKnee = 11, 31 | 32 | LeftAnkle = 12, 33 | 34 | RightEye = 13, 35 | 36 | LeftEye = 14, 37 | 38 | RightEar = 15, 39 | 40 | LeftEar = 16, 41 | 42 | LeftBigToe = 17, 43 | 44 | LeftSmallToe = 18, 45 | 46 | LeftHeel = 19, 47 | 48 | RightBigToe = 20, 49 | 50 | RightSmallToe = 21, 51 | 52 | RightHeel = 22, 53 | 54 | Background = 23, 55 | 56 | } 57 | 58 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Pose/PoseBody25BBodyPart.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public enum PoseBody25BBodyPart 6 | { 7 | 8 | Nose = 0, 9 | 10 | LeftEye = 1, 11 | 12 | RightEye = 2, 13 | 14 | LeftEar = 3, 15 | 16 | RightEar = 4, 17 | 18 | LeftShoulder = 5, 19 | 20 | RightShoulder = 6, 21 | 22 | LeftElbow = 7, 23 | 24 | RightElbow = 8, 25 | 26 | LeftWrist = 9, 27 | 28 | RightWrist = 10, 29 | 30 | LeftHip = 11, 31 | 32 | RightHip = 12, 33 | 34 | LeftKnee = 13, 35 | 36 | RightKnee = 14, 37 | 38 | LeftAnkle = 15, 39 | 40 | RightAnkle = 16, 41 | 42 | UpperNeck = 17, 43 | 44 | HeadTop = 18, 45 | 46 | LeftBigToe = 19, 47 | 48 | LeftSmallToe = 20, 49 | 50 | LeftHeel = 21, 51 | 52 | RightBigToe = 22, 53 | 54 | RightSmallToe = 23, 55 | 56 | RightHeel = 24, 57 | 58 | } 59 | 60 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Pose/PoseBody25BodyPart.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public enum PoseBody25BodyPart 6 | { 7 | 8 | Nose = 0, 9 | 10 | Neck = 1, 11 | 12 | RightShoulder = 2, 13 | 14 | RightElbow = 3, 15 | 16 | RightWrist = 4, 17 | 18 | LeftShoulder = 5, 19 | 20 | LeftElbow = 6, 21 | 22 | LeftWrist = 7, 23 | 24 | MidHip = 8, 25 | 26 | RightHip = 9, 27 | 28 | RightKnee = 10, 29 | 30 | RightAnkle = 11, 31 | 32 | LeftHip = 12, 33 | 34 | LeftKnee = 13, 35 | 36 | LeftAnkle = 14, 37 | 38 | RightEye = 15, 39 | 40 | LeftEye = 16, 41 | 42 | RightEar = 17, 43 | 44 | LeftEar = 18, 45 | 46 | LeftBigToe = 19, 47 | 48 | LeftSmallToe = 20, 49 | 50 | LeftHeel = 21, 51 | 52 | RightBigToe = 22, 53 | 54 | RightSmallToe = 23, 55 | 56 | RightHeel = 24, 57 | 58 | Background = 25 59 | 60 | } 61 | 62 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Pose/PoseCar12Part.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public enum PoseCar12Part 6 | { 7 | 8 | FrontRightWheel = 0, 9 | 10 | FrontLeftWheel = 1, 11 | 12 | BackRightWheel = 2, 13 | 14 | BackLeftWheel = 3, 15 | 16 | FrontRightLight = 4, 17 | 18 | FrontLeftLight = 5, 19 | 20 | BackRightLight = 6, 21 | 22 | BackLeftLight = 7, 23 | 24 | FrontRightTop = 8, 25 | 26 | FrontLeftTop = 9, 27 | 28 | BackRightTop = 10, 29 | 30 | BackLeftTop = 11, 31 | 32 | Background = 12 33 | 34 | } 35 | 36 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Pose/PoseCar22Part.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public enum PoseCar22Part 6 | { 7 | 8 | FrontLeftWheel = 0, 9 | 10 | BackLeftWheel = 1, 11 | 12 | FrontRightWheel = 2, 13 | 14 | BackRightWheel = 3, 15 | 16 | FrontRightFogLight = 4, 17 | 18 | FrontLeftFogLight = 5, 19 | 20 | FrontRightLight = 6, 21 | 22 | FrontLeftLight = 7, 23 | 24 | Grilles = 8, 25 | 26 | FrontBumper = 9, 27 | 28 | LeftMirror = 10, 29 | 30 | RightMirror = 11, 31 | 32 | FrontRightTop = 12, 33 | 34 | FrontLeftTop = 13, 35 | 36 | BackLeftTop = 14, 37 | 38 | BackRightTop = 15, 39 | 40 | BackLeftLight = 16, 41 | 42 | BackRightLight = 17, 43 | 44 | Trunk = 18, 45 | 46 | BackBumper = 19, 47 | 48 | BackLeftCorner = 20, 49 | 50 | BackRightCorner = 21, 51 | 52 | Background = 22 53 | 54 | } 55 | 56 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Pose/PoseCocoBodyPart.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public enum PoseCocoBodyPart 6 | { 7 | 8 | Nose = 0, 9 | 10 | Neck = 1, 11 | 12 | RightShoulder = 2, 13 | 14 | RightElbow = 3, 15 | 16 | RightWrist = 4, 17 | 18 | LeftShoulder = 5, 19 | 20 | LeftElbow = 6, 21 | 22 | LeftWrist = 7, 23 | 24 | RightHip = 8, 25 | 26 | RightKnee = 9, 27 | 28 | RightAnkle = 10, 29 | 30 | LeftHip = 11, 31 | 32 | LeftKnee = 12, 33 | 34 | LeftAnkle = 13, 35 | 36 | RightEye = 14, 37 | 38 | LeftEye = 15, 39 | 40 | RightEar = 16, 41 | 42 | LeftEar = 17, 43 | 44 | Background = 18, 45 | 46 | } 47 | 48 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Pose/PoseExtractorNet.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | // ReSharper disable once CheckNamespace 5 | namespace OpenPoseDotNet 6 | { 7 | 8 | public abstract class PoseExtractorNet : OpenPoseObject 9 | { 10 | 11 | #region Constructors 12 | 13 | protected PoseExtractorNet() 14 | { 15 | } 16 | 17 | protected PoseExtractorNet(IntPtr ptr, bool isEnabledDispose = true): 18 | base(isEnabledDispose) 19 | { 20 | this.NativePtr = ptr; 21 | } 22 | 23 | #endregion 24 | 25 | #region Methods 26 | 27 | public abstract void ForwardPass(IEnumerable> inputNetData, Point inputDataSize, double[] scaleRatios = null); 28 | 29 | public Array GetPoseKeyPoints() 30 | { 31 | this.ThrowIfDisposed(); 32 | 33 | var ret = NativeMethods.op_PoseExtractorNet_getPoseKeypoints(this.NativePtr); 34 | return new Array(ret); 35 | } 36 | 37 | public float GetScaleNetToOutput() 38 | { 39 | this.ThrowIfDisposed(); 40 | return NativeMethods.op_PoseExtractorNet_getScaleNetToOutput(this.NativePtr); 41 | } 42 | 43 | public void InitializationOnThread() 44 | { 45 | this.ThrowIfDisposed(); 46 | NativeMethods.op_PoseExtractorNet_initializationOnThread(this.NativePtr); 47 | } 48 | 49 | #endregion 50 | 51 | } 52 | 53 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Pose/PoseModel.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public enum PoseModel : byte 6 | { 7 | 8 | Body25 = 0, 9 | Coco18, /**< COCO model + neck, with 18+1 components (see poseParameters.hpp for details). */ 10 | Mpi15, /**< MPI model, with 15+1 components (see poseParameters.hpp for details). */ 11 | Mpi15_4, /**< Variation of the MPI model, reduced number of CNN stages to 4: faster but less accurate.*/ 12 | Body19, /**< Experimental. Do not use. */ 13 | Body19_X2, /**< Experimental. Do not use. */ 14 | Body59, /**< Experimental. Do not use. */ 15 | Body19N, /**< Experimental. Do not use. */ 16 | Body25E, /**< Experimental. Do not use. */ 17 | Body25_19, /**< Experimental. Do not use. */ 18 | Body65, /**< Experimental. Do not use. */ 19 | Car12, /**< Experimental. Do not use. */ 20 | Body25D, /**< Experimental. Do not use. */ 21 | Body23, /**< Experimental. Do not use. */ 22 | Car22, /**< Experimental. Do not use. */ 23 | Body19E, /**< Experimental. Do not use. */ 24 | Size, 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Pose/PoseMpiBodyPart.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public enum PoseMpiBodyPart 6 | { 7 | 8 | Head = 0, 9 | 10 | Neck = 1, 11 | 12 | RightShoulder = 2, 13 | 14 | RightElbow = 3, 15 | 16 | RightWrist = 4, 17 | 18 | LeftShoulder = 5, 19 | 20 | LeftElbow = 6, 21 | 22 | LeftWrist = 7, 23 | 24 | RightHip = 8, 25 | 26 | RightKnee = 9, 27 | 28 | RightAnkle = 10, 29 | 30 | LeftHip = 11, 31 | 32 | LeftKnee = 12, 33 | 34 | LeftAnkle = 13, 35 | 36 | Chest = 14, 37 | 38 | Background = 15, 39 | 40 | } 41 | 42 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Pose/PoseRenderer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | // ReSharper disable once CheckNamespace 4 | namespace OpenPoseDotNet 5 | { 6 | 7 | public interface IPoseRenderer 8 | { 9 | 10 | #region Methods 11 | 12 | void InitializationOnThread(); 13 | 14 | Tuple RenderPose(Array outputData, 15 | Array poseKeyPoints, 16 | float scaleInputToOutput, 17 | float scaleNetToOutput = -1.0f); 18 | 19 | #endregion 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Producer/ConcreteProducer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | // ReSharper disable once CheckNamespace 4 | namespace OpenPoseDotNet 5 | { 6 | 7 | internal sealed class ConcreteProducer : Producer 8 | { 9 | 10 | #region Constructors 11 | 12 | public ConcreteProducer(IntPtr ptr, bool isEnabledDispose = true) : 13 | base(ptr, isEnabledDispose) 14 | { 15 | } 16 | 17 | #endregion 18 | 19 | public override bool IsOpened 20 | { 21 | get; 22 | } 23 | 24 | public override void Release() 25 | { 26 | } 27 | 28 | } 29 | 30 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Producer/ProducerFpsMode.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public enum ProducerFpsMode : byte 6 | { 7 | 8 | /** The frames will be extracted at the original source fps (frames might be skipped or repeated). */ 9 | OriginalFps, 10 | 11 | /** The frames will be extracted when the software retrieves them (frames will not be skipped or repeated). */ 12 | RetrievalFps 13 | 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Producer/ProducerType.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public enum ProducerType : byte 6 | { 7 | 8 | /** Stereo FLIR (Point-Grey) camera reader. Based on Spinnaker SDK. */ 9 | FlirCamera, 10 | 11 | /** An image directory reader. It is able to read images on a folder with a interface similar to the OpenCV 12 | * cv::VideoCapture. 13 | */ 14 | ImageDirectory, 15 | 16 | /** An IP camera frames extractor, extending the functionality of cv::VideoCapture. */ 17 | IPCamera, 18 | 19 | /** A video frames extractor, extending the functionality of cv::VideoCapture. */ 20 | Video, 21 | 22 | /** A webcam frames extractor, extending the functionality of cv::VideoCapture. */ 23 | Webcam, 24 | 25 | /** No type defined. Default state when no specific Producer has been picked yet. */ 26 | None, 27 | 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Producer/WebcamReader.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | // ReSharper disable once CheckNamespace 4 | namespace OpenPoseDotNet 5 | { 6 | 7 | public class WebcamReader : VideoCaptureReader 8 | { 9 | 10 | #region Constructors 11 | 12 | internal WebcamReader(IntPtr ptr, bool isEnabledDispose = true) 13 | : base(ptr, isEnabledDispose) 14 | { 15 | } 16 | 17 | #endregion 18 | 19 | #region Properties 20 | 21 | public override bool IsOpened 22 | { 23 | get 24 | { 25 | this.ThrowIfDisposed(); 26 | return NativeMethods.op_WebcamReader_isOpened(this.NativePtr); 27 | } 28 | } 29 | 30 | #endregion 31 | 32 | #region Methods 33 | 34 | public override double Get(int capProperty) 35 | { 36 | this.ThrowIfDisposed(); 37 | return NativeMethods.op_WebcamReader_get(this.NativePtr, capProperty); 38 | } 39 | 40 | #region Overrides 41 | 42 | /// 43 | /// Releases all unmanaged resources. 44 | /// 45 | protected override void DisposeUnmanaged() 46 | { 47 | base.DisposeUnmanaged(); 48 | 49 | if (this.NativePtr == IntPtr.Zero) 50 | return; 51 | 52 | // This class should be used in std::shared_ptr. 53 | // So we need not to consider dispose object 54 | } 55 | 56 | #endregion 57 | 58 | #endregion 59 | 60 | } 61 | 62 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/StdLib/Chrono/StdTimePoint.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | // ReSharper disable once CheckNamespace 4 | namespace OpenPoseDotNet 5 | { 6 | 7 | public sealed class StdTimePoint : OpenPoseObject 8 | { 9 | 10 | #region Constructors 11 | 12 | internal StdTimePoint(IntPtr ptr) 13 | { 14 | this.NativePtr = ptr; 15 | } 16 | 17 | #endregion 18 | 19 | #region Methods 20 | 21 | #region Overrides 22 | 23 | /// 24 | /// Releases all unmanaged resources. 25 | /// 26 | protected override void DisposeUnmanaged() 27 | { 28 | if (this.IsDisposed) 29 | return; 30 | 31 | base.DisposeUnmanaged(); 32 | 33 | if (this.NativePtr == IntPtr.Zero) 34 | return; 35 | 36 | NativeMethods.std_chrono_time_point_delete(this.NativePtr); 37 | this.NativePtr = IntPtr.Zero; 38 | } 39 | 40 | #endregion 41 | 42 | #endregion 43 | 44 | } 45 | 46 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/StdLib/StdLib.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | // ReSharper disable once CheckNamespace 5 | namespace OpenPoseDotNet 6 | { 7 | 8 | public static partial class OpenPose 9 | { 10 | 11 | #region Methods 12 | 13 | private static void CopyFromHeapMemory(IntPtr ptr, int count, out long[] array) 14 | { 15 | array = new long[count]; 16 | Marshal.Copy(ptr, array, 0, count); 17 | //Native.stdlib_free(ptr); 18 | } 19 | 20 | #endregion 21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/StdLib/StdString.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | // ReSharper disable once CheckNamespace 4 | namespace OpenPoseDotNet 5 | { 6 | 7 | public sealed class StdString : OpenPoseObject 8 | { 9 | 10 | #region Constructors 11 | 12 | internal StdString(IntPtr ptr) 13 | { 14 | this.NativePtr = ptr; 15 | } 16 | 17 | #endregion 18 | 19 | #region Methods 20 | 21 | #region Overrides 22 | 23 | /// 24 | /// Releases all unmanaged resources. 25 | /// 26 | protected override void DisposeUnmanaged() 27 | { 28 | if (this.IsDisposed) 29 | return; 30 | 31 | base.DisposeUnmanaged(); 32 | 33 | if (this.NativePtr == IntPtr.Zero) 34 | return; 35 | 36 | NativeMethods.std_string_delete(this.NativePtr); 37 | this.NativePtr = IntPtr.Zero; 38 | } 39 | 40 | #endregion 41 | 42 | #endregion 43 | 44 | } 45 | 46 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Thread/OpenPose.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public static partial class OpenPose 6 | { 7 | 8 | public enum DataType 9 | { 10 | 11 | Default = 0, 12 | 13 | Custom = 1 14 | 15 | } 16 | 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Thread/ThreadManagerMode.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public enum ThreadManagerMode : byte 6 | { 7 | 8 | Asynchronous, 9 | 10 | AsynchronousIn, 11 | 12 | AsynchronousOut, 13 | 14 | Synchronous 15 | 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Thread/Worker.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | // ReSharper disable once CheckNamespace 4 | namespace OpenPoseDotNet 5 | { 6 | 7 | public class Worker : OpenPoseObject 8 | where T : Datum 9 | { 10 | 11 | #region Fields 12 | 13 | private readonly OpenPose.DataType _DataType; 14 | 15 | #endregion 16 | 17 | #region Constructors 18 | 19 | protected Worker(IntPtr ptr, bool isEnabledDispose = true) : 20 | base(isEnabledDispose) 21 | { 22 | this._DataType = GenericHelpers.CheckDatumSupportTypes(); 23 | this.NativePtr = ptr; 24 | } 25 | 26 | #endregion 27 | 28 | } 29 | 30 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Thread/WorkerConsumer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | // ReSharper disable once CheckNamespace 4 | namespace OpenPoseDotNet 5 | { 6 | 7 | public class WorkerConsumer : Worker 8 | where T : Datum 9 | { 10 | 11 | #region Fields 12 | 13 | private readonly OpenPose.DataType _DataType; 14 | 15 | #endregion 16 | 17 | #region Constructors 18 | 19 | protected WorkerConsumer() : 20 | base(IntPtr.Zero) 21 | { 22 | } 23 | 24 | protected WorkerConsumer(IntPtr ptr, bool isEnabledDispose = true) : 25 | base(ptr, isEnabledDispose) 26 | { 27 | this._DataType = GenericHelpers.CheckDatumSupportTypes(); 28 | } 29 | 30 | #endregion 31 | 32 | } 33 | 34 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Thread/WorkerProducer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | // ReSharper disable once CheckNamespace 4 | namespace OpenPoseDotNet 5 | { 6 | 7 | public class WorkerProducer : Worker 8 | where T : Datum 9 | { 10 | 11 | #region Fields 12 | 13 | private readonly OpenPose.DataType _DataType; 14 | 15 | #endregion 16 | 17 | #region Constructors 18 | 19 | protected WorkerProducer(): 20 | base(IntPtr.Zero) 21 | { 22 | } 23 | 24 | protected WorkerProducer(IntPtr ptr, bool isEnabledDispose = true) : 25 | base(ptr, isEnabledDispose) 26 | { 27 | this._DataType = GenericHelpers.CheckDatumSupportTypes(); 28 | } 29 | 30 | #endregion 31 | 32 | } 33 | 34 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/User/UserWorkerConsumerDelegateMediator.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | // ReSharper disable once CheckNamespace 4 | namespace OpenPoseDotNet 5 | { 6 | 7 | internal sealed class UserWorkerConsumerDelegateMediator : WorkerDelegateMediator 8 | { 9 | 10 | #region Constructors 11 | 12 | public UserWorkerConsumerDelegateMediator(OpenPose.DataType dataType) : 13 | base(dataType) 14 | { 15 | } 16 | 17 | #endregion 18 | 19 | #region Methods 20 | 21 | protected override IntPtr CreateObject() 22 | { 23 | return NativeMethods.op_UserWorkerConsumer_new(this.DataType, 24 | this.InitializationOnThreadActionPointer, 25 | this.ProcessActionPointer); 26 | } 27 | 28 | #endregion 29 | 30 | } 31 | 32 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/User/UserWorkerDelegateMediator.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | // ReSharper disable once CheckNamespace 4 | namespace OpenPoseDotNet 5 | { 6 | 7 | internal sealed class UserWorkerDelegateMediator : WorkerDelegateMediator 8 | { 9 | 10 | #region Constructors 11 | 12 | public UserWorkerDelegateMediator(OpenPose.DataType dataType) : 13 | base(dataType) 14 | { 15 | } 16 | 17 | #endregion 18 | 19 | #region Methods 20 | 21 | protected override IntPtr CreateObject() 22 | { 23 | return NativeMethods.op_UserWorker_new(this.DataType, 24 | this.InitializationOnThreadActionPointer, 25 | this.ProcessActionPointer); 26 | } 27 | 28 | #endregion 29 | 30 | } 31 | 32 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/User/UserWorkerProducerDelegateMediator.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | // ReSharper disable once CheckNamespace 4 | namespace OpenPoseDotNet 5 | { 6 | 7 | internal sealed class UserWorkerProducerDelegateMediator : WorkerDelegateMediator 8 | { 9 | 10 | #region Constructors 11 | 12 | public UserWorkerProducerDelegateMediator(OpenPose.DataType dataType) : 13 | base(dataType) 14 | { 15 | } 16 | 17 | #endregion 18 | 19 | #region Methods 20 | 21 | protected override IntPtr CreateObject() 22 | { 23 | return NativeMethods.op_UserWorkerProducer_new(this.DataType, 24 | this.InitializationOnThreadActionPointer, 25 | this.ProcessAction2Pointer); 26 | } 27 | 28 | #endregion 29 | 30 | } 31 | 32 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Utilities/ConfigureError.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public static class ConfigureError 6 | { 7 | 8 | #region Properties 9 | 10 | public static ErrorMode[] ErrorModes 11 | { 12 | get 13 | { 14 | var ret = NativeMethods.op_ConfigureError_getErrorModes(); 15 | using (var vector = new StdVector(ret)) 16 | return vector.ToArray(); 17 | } 18 | set 19 | { 20 | using (var vector = new StdVector(value ?? new ErrorMode[0])) 21 | NativeMethods.op_ConfigureError_setErrorModes(vector.NativePtr); 22 | } 23 | } 24 | 25 | #endregion 26 | 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Utilities/ConfigureLog.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public static class ConfigureLog 6 | { 7 | 8 | #region Properties 9 | 10 | public static LogMode[] LogModes 11 | { 12 | get 13 | { 14 | var ret = NativeMethods.op_ConfigureLog_getLogModes(); 15 | using (var vector = new StdVector(ret)) 16 | return vector.ToArray(); 17 | } 18 | set 19 | { 20 | using (var vector = new StdVector(value ?? new LogMode[0])) 21 | NativeMethods.op_ConfigureLog_setLogModes(vector.NativePtr); 22 | } 23 | } 24 | 25 | public static Priority PriorityThreshold 26 | { 27 | get => NativeMethods.op_ConfigureLog_getPriorityThreshold(); 28 | set => NativeMethods.op_ConfigureLog_setPriorityThreshold(value); 29 | } 30 | 31 | #endregion 32 | 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Utilities/ErrorMode.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public enum ErrorMode : byte 6 | { 7 | 8 | StdRuntimeError, 9 | 10 | FileLogging, 11 | 12 | StdCerr, 13 | 14 | All 15 | 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Utilities/Extensions.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public enum Extensions : byte 6 | { 7 | 8 | Images 9 | 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Utilities/LogMode.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public enum LogMode : byte 6 | { 7 | 8 | FileLogging, 9 | 10 | StdCout, 11 | 12 | All 13 | 14 | } 15 | 16 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Utilities/Priority.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public enum Priority : byte 6 | { 7 | 8 | None = 0, 9 | 10 | Low = 1, 11 | 12 | Normal = 2, 13 | 14 | High = 3, 15 | 16 | Max = 4, 17 | 18 | NoOutput = 255 19 | 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Wrapper/Detector.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public enum Detector : byte 6 | { 7 | 8 | Body = 0, 9 | 10 | OpenCV, 11 | 12 | Provided, 13 | 14 | BodyWithTracking 15 | 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Wrapper/PoseMode.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public enum PoseMode : byte 6 | { 7 | 8 | Disabled = 0, 9 | 10 | Enabled, 11 | 12 | NoNetwork 13 | 14 | } 15 | 16 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Wrapper/WorkerType.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | namespace OpenPoseDotNet 3 | { 4 | 5 | public enum WorkerType : byte 6 | { 7 | 8 | Input = 0, 9 | 10 | PreProcessing, 11 | 12 | PostProcessing, 13 | 14 | Output 15 | 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Wrapper/WrapperStructExtra.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | // ReSharper disable once CheckNamespace 4 | namespace OpenPoseDotNet 5 | { 6 | 7 | public sealed class WrapperStructExtra : OpenPoseObject 8 | { 9 | 10 | #region Constructors 11 | 12 | public WrapperStructExtra(bool reconstruct3d = false, 13 | int minViews3d = -1, 14 | bool identification = false, 15 | int tracking = -1, 16 | int ikThreads = 0) 17 | { 18 | this.NativePtr = NativeMethods.op_wrapperStructExtra_new(reconstruct3d, 19 | minViews3d, 20 | identification, 21 | tracking, 22 | ikThreads); 23 | } 24 | 25 | #endregion 26 | 27 | #region Methods 28 | 29 | #region Overrides 30 | 31 | /// 32 | /// Releases all unmanaged resources. 33 | /// 34 | protected override void DisposeUnmanaged() 35 | { 36 | base.DisposeUnmanaged(); 37 | 38 | if (this.NativePtr == IntPtr.Zero) 39 | return; 40 | 41 | NativeMethods.op_wrapperStructExtra_delete(this.NativePtr); 42 | } 43 | 44 | #endregion 45 | 46 | #endregion 47 | 48 | } 49 | 50 | } -------------------------------------------------------------------------------- /src/OpenPoseDotNet/Wrapper/WrapperStructGui.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | // ReSharper disable once CheckNamespace 4 | namespace OpenPoseDotNet 5 | { 6 | 7 | public sealed class WrapperStructGui : OpenPoseObject 8 | { 9 | 10 | #region Constructors 11 | 12 | public WrapperStructGui(DisplayMode displayMode = DisplayMode.NoDisplay, 13 | bool guiVerbose = false, 14 | bool fullScreen = false) 15 | { 16 | this.NativePtr = NativeMethods.op_wrapperStructGui_new(displayMode, 17 | guiVerbose, 18 | fullScreen); 19 | } 20 | 21 | #endregion 22 | 23 | #region Methods 24 | 25 | #region Overrides 26 | 27 | /// 28 | /// Releases all unmanaged resources. 29 | /// 30 | protected override void DisposeUnmanaged() 31 | { 32 | base.DisposeUnmanaged(); 33 | 34 | if (this.NativePtr == IntPtr.Zero) 35 | return; 36 | 37 | NativeMethods.op_wrapperStructGui_delete(this.NativePtr); 38 | } 39 | 40 | #endregion 41 | 42 | #endregion 43 | 44 | } 45 | 46 | } -------------------------------------------------------------------------------- /test/OpenPoseDotNet.Tests/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | [assembly: AssemblyTitle("OpenPoseDotNet.Tests")] 5 | [assembly: AssemblyDescription("")] 6 | [assembly: AssemblyConfiguration("")] 7 | [assembly: AssemblyCompany("")] 8 | [assembly: AssemblyProduct("OpenPoseDotNet.Tests")] 9 | [assembly: AssemblyCopyright("Copyright © 2018")] 10 | [assembly: AssemblyTrademark("")] 11 | [assembly: AssemblyCulture("")] 12 | 13 | [assembly: ComVisible(false)] 14 | 15 | [assembly: Guid("98bafffb-8feb-4ecb-81fc-e0c43b350996")] 16 | 17 | // [assembly: AssemblyVersion("1.0.*")] 18 | [assembly: AssemblyVersion("1.0.0.0")] 19 | [assembly: AssemblyFileVersion("1.0.0.0")] 20 | -------------------------------------------------------------------------------- /test/OpenPoseDotNet.Tests/Utilities/ConfigureErrorTest.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.VisualStudio.TestTools.UnitTesting; 2 | 3 | // ReSharper disable once CheckNamespace 4 | namespace OpenPoseDotNet.Tests 5 | { 6 | 7 | [TestClass] 8 | public class ConfigureErrorTest 9 | { 10 | 11 | [TestMethod] 12 | public void ErrorModes() 13 | { 14 | var tmp = new [] { ErrorMode.All }; 15 | ConfigureError.ErrorModes = tmp; 16 | var ret = ConfigureError.ErrorModes; 17 | Assert.IsTrue(tmp.Length == ret.Length && tmp[0] == ret[0]); 18 | 19 | tmp = new[] { ErrorMode.FileLogging }; 20 | ConfigureError.ErrorModes = tmp; 21 | ret = ConfigureError.ErrorModes; 22 | Assert.IsTrue(tmp.Length == ret.Length && tmp[0] == ret[0]); 23 | 24 | tmp = new[] { ErrorMode.StdCerr }; 25 | ConfigureError.ErrorModes = tmp; 26 | ret = ConfigureError.ErrorModes; 27 | Assert.IsTrue(tmp.Length == ret.Length && tmp[0] == ret[0]); 28 | 29 | tmp = new[] { ErrorMode.StdRuntimeError }; 30 | ConfigureError.ErrorModes = tmp; 31 | ret = ConfigureError.ErrorModes; 32 | Assert.IsTrue(tmp.Length == ret.Length && tmp[0] == ret[0]); 33 | } 34 | 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /test/OpenPoseDotNet.Tests/Utilities/ConfigureLogTest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Linq; 3 | using Microsoft.VisualStudio.TestTools.UnitTesting; 4 | 5 | // ReSharper disable once CheckNamespace 6 | namespace OpenPoseDotNet.Tests 7 | { 8 | 9 | [TestClass] 10 | public class ConfigureLogTest 11 | { 12 | 13 | [TestMethod] 14 | public void LogModes() 15 | { 16 | var tmp = new [] { LogMode.All }; 17 | ConfigureLog.LogModes = tmp; 18 | var ret = ConfigureLog.LogModes; 19 | Assert.IsTrue(tmp.Length == ret.Length && tmp[0] == ret[0]); 20 | 21 | tmp = new[] { LogMode.FileLogging }; 22 | ConfigureLog.LogModes = tmp; 23 | ret = ConfigureLog.LogModes; 24 | Assert.IsTrue(tmp.Length == ret.Length && tmp[0] == ret[0]); 25 | 26 | tmp = new[] { LogMode.StdCout }; 27 | ConfigureLog.LogModes = tmp; 28 | ret = ConfigureLog.LogModes; 29 | Assert.IsTrue(tmp.Length == ret.Length && tmp[0] == ret[0]); 30 | } 31 | 32 | [TestMethod] 33 | public void Priority() 34 | { 35 | foreach (var priority in Enum.GetValues(typeof(Priority)).Cast()) 36 | { 37 | ConfigureLog.PriorityThreshold = priority; 38 | Assert.IsTrue(priority == ConfigureLog.PriorityThreshold); 39 | } 40 | } 41 | 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /test/OpenPoseDotNet.Tests/Utilities/OpenPoseTest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Linq; 3 | using Microsoft.VisualStudio.TestTools.UnitTesting; 4 | 5 | // ReSharper disable once CheckNamespace 6 | namespace OpenPoseDotNet.Tests 7 | { 8 | 9 | [TestClass] 10 | public class OpenPoseTest 11 | { 12 | 13 | [TestMethod] 14 | public void DebugLog() 15 | { 16 | const string message = nameof(this.DebugLog); 17 | const string function = nameof(this.DebugLog); 18 | const string file = "OpenPoseTest.cs"; 19 | 20 | foreach (var priority in Enum.GetValues(typeof(Priority)).Cast()) 21 | OpenPose.LogIfDebug($"{message}", priority, -1, function, file); 22 | } 23 | 24 | [TestMethod] 25 | public void Error() 26 | { 27 | const string message = nameof(this.Error); 28 | const string function = nameof(this.Error); 29 | const string file = "OpenPoseTest.cs"; 30 | 31 | OpenPose.Error($"{message}", -1, function, file); 32 | } 33 | 34 | [TestMethod] 35 | public void Log() 36 | { 37 | const string message = nameof(this.Log); 38 | const string function = nameof(this.Log); 39 | const string file = "OpenPoseTest.cs"; 40 | 41 | foreach (var priority in Enum.GetValues(typeof(Priority)).Cast()) 42 | OpenPose.Log($"{message}", priority, -1, function, file); 43 | } 44 | 45 | } 46 | 47 | } 48 | -------------------------------------------------------------------------------- /test/OpenPoseDotNet.Tests/Wrapper/WrapperTest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Linq; 3 | using Microsoft.VisualStudio.TestTools.UnitTesting; 4 | 5 | namespace OpenPoseDotNet.Tests.Wrapper 6 | { 7 | 8 | [TestClass] 9 | public class WrapperTest 10 | { 11 | 12 | [TestMethod] 13 | public void Create() 14 | { 15 | using (var _ = new OpenPoseDotNet.Wrapper()) 16 | Console.WriteLine($"{nameof(OpenPoseDotNet.Wrapper)} was created."); 17 | } 18 | 19 | [TestMethod] 20 | public void Destroy() 21 | { 22 | foreach (var mode in Enum.GetValues(typeof(ThreadManagerMode)).Cast()) 23 | { 24 | var wrapper = new OpenPoseDotNet.Wrapper(mode); 25 | wrapper.Dispose(); 26 | } 27 | } 28 | 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /test/OpenPoseDotNet.Tests/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | --------------------------------------------------------------------------------