![]() |
Face Engine SDK
5.17.0
A face detection, recognition and tracking engine.
|
00001 00008 #pragma once 00009 00010 #include <fsdk/IDescriptor.h> 00011 #include <fsdk/Types/Span.h> 00012 #include <fsdk/Types/Transformation.h> 00013 00014 #include <fsdk/vlc/future.h> 00015 00016 namespace fsdk { 00017 struct EyesEstimation; 00018 struct GazeEstimation; 00019 } 00020 00021 namespace fsdk { 00022 00023 #ifndef DOXYGEN_SHOULD_SKIP_THIS 00024 DECLARE_SMARTPTR(IWarper); 00025 #endif 00026 00037 struct IWarper : IRefCounted { 00045 virtual Transformation 00046 createTransformation( 00047 const Detection& detection, 00048 const Landmarks5& landmarks) const noexcept = 0; 00049 00059 virtual Result<FSDKError> 00060 warp( 00061 const Image& image, 00062 const Transformation& transformation, 00063 Image& transformedImage) const noexcept = 0; 00064 00082 virtual Result<FSDKError> 00083 warp( 00084 Span<const Image> images, 00085 Span<const Transformation> transformations, 00086 Span<Image> transformedImages) const noexcept = 0; 00087 00098 virtual Result<FSDKError> 00099 warp( 00100 const Landmarks5& landmarks, 00101 const Transformation& transformation, 00102 Landmarks5& transformedLandmarks) const noexcept = 0; 00103 00114 virtual Result<FSDKError> 00115 warp( 00116 const Landmarks68& landmarks68, 00117 const Transformation& transformation, 00118 Landmarks68& transformedLandmarks68) const noexcept = 0; 00119 00131 virtual Result<FSDKError> 00132 unwarp( 00133 const EyesEstimation& eyesEstimationInWarpCoordinates, 00134 const Transformation& transformation, 00135 EyesEstimation& eyesEstimation) const noexcept = 0; 00136 00145 virtual Result<FSDKError> 00146 unwarp( 00147 const Landmarks5& warpedLandmarks5, 00148 const Transformation& transformation, 00149 Landmarks5& landmarks5) const noexcept = 0; 00150 00159 virtual Result<FSDKError> 00160 unwarp( 00161 const Landmarks68& warpedLandmarks68, 00162 const Transformation& transformation, 00163 Landmarks68& landmarks68) const noexcept = 0; 00164 00165 virtual Result<FSDKError> 00166 unwarp( 00167 const GazeEstimation& warpedAngles, 00168 const Transformation& transformation, 00169 GazeEstimation& angles 00170 ) const noexcept = 0; 00171 00175 using ImageBatch = std::vector<Image>; 00176 using ImageBatchFuture = vlc::future<ImageBatch>; 00177 00190 virtual ImageBatchFuture warpAsync( 00191 Span<const Image> images, 00192 Span<const Transformation> transformations) const = 0; 00193 }; 00195 }