├── .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 |
--------------------------------------------------------------------------------