protected override void Work(StdSharedPtr <CustomDatum>[] datums) { try { if (datums != null) { // Debugging log OpenPose.LogIfDebug("", Priority.Low, -1, nameof(this.Work), ""); // Profiling speed var profilerKey = Profiler.TimerInit(-1, nameof(this.Work), ""); foreach (var datum in datums) { // THESE 2 ARE THE ONLY LINES THAT THE USER MUST MODIFY ON THIS HPP FILE, by using the proper // function and datum elements using (var cvOutputData = OpenPose.OP_OP2CVMAT(datum.Get().CvOutputData)) this._UserPostProcessing.DoSomething(cvOutputData, cvOutputData); // Profiling speed Profiler.TimerEnd(profilerKey); Profiler.PrintAveragedTimeMsOnIterationX(profilerKey, -1, nameof(this.Work), ""); // Debugging log OpenPose.LogIfDebug("", Priority.Low, -1, nameof(this.Work), ""); } } } catch (Exception e) { this.Stop(); datums = null; Console.WriteLine(e.Message); } }
protected override void Work(StdSharedPtr <UserDatum>[] datums) { try { // User's post-processing (after OpenPose processing & before OpenPose outputs) here // datum.cvOutputData: rendered frame with pose or heatmaps // datum.poseKeypoints: Array<float> with the estimated pose if (datums != null && datums.Length != 0) { foreach (var datum in datums) { using (var cvOutputData = OpenPose.OP_OP2CVMAT(datum.Get().CvOutputData)) Cv.BitwiseNot(cvOutputData, cvOutputData); } } } catch (Exception e) { this.Stop(); OpenPose.Error(e.Message, -1, nameof(this.Work)); } }
protected override void Work(StdSharedPtr <Datum>[] datums) { try { // User's pre-processing (after OpenPose read the input image & before OpenPose processing) here // datumPtr->cvInputData: input frame if (datums != null && datums.Length != 0) { foreach (var datum in datums) { using (var cvOutputData = OpenPose.OP_OP2CVMAT(datum.Get().CvOutputData)) Cv.BitwiseNot(cvOutputData, cvOutputData); } } } catch (Exception e) { OpenPose.Log("Some kind of unexpected error happened."); this.Stop(); OpenPose.Error(e.Message, -1, nameof(this.Work)); } }
protected override void Work(StdSharedPtr <Datum>[] datumsPtr) { try { // User's processing here // datum.cvInputData: initial cv::Mat obtained from the frames producer (video, webcam, etc.) // datum.cvOutputData: final cv::Mat to be displayed if (datumsPtr != null) { foreach (var datum in datumsPtr) { using (var cvOutputData = OpenPose.OP_OP2CVMAT(datum.Get().CvOutputData)) Cv.BitwiseNot(cvOutputData, cvOutputData); } } } catch (Exception e) { OpenPose.Log("Some kind of unexpected error happened."); this.Stop(); OpenPose.Error(e.Message, -1, nameof(this.Work)); } }