Face Engine SDK  5.25.0
A face detection, recognition and tracking engine.
include/fsdk/IWarper.h
Go to the documentation of this file.
00001 
00008 #pragma once
00009 
00010 #include <fsdk/FSDKError.h>
00011 #include <fsdk/IRefCounted.h>
00012 #include <fsdk/Types.h>
00013 
00014 #include <fsdk/vlc/future.h>
00015 
00016 namespace fsdk {
00017     struct EyesEstimation;
00018     struct GazeEstimation;
00019 } // namespace fsdk
00020 
00021 namespace fsdk {
00022 
00023 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00024     DECLARE_SMARTPTR(IWarper);
00025 #endif
00026 
00038     struct IWarper : IRefCounted {
00046         virtual Transformation
00047         createTransformation(const Detection& detection, const Landmarks5& landmarks) const noexcept = 0;
00048 
00058         virtual Result<FSDKError> warp(
00059             const Image& image,
00060             const Transformation& transformation,
00061             Image& transformedImage) const noexcept = 0;
00062 
00081         virtual Result<FSDKError> warp(
00082             Span<const Image> images,
00083             Span<const Transformation> transformations,
00084             Span<Image> transformedImages) const noexcept = 0;
00085 
00096         virtual Result<FSDKError> warp(
00097             const Landmarks5& landmarks,
00098             const Transformation& transformation,
00099             Landmarks5& transformedLandmarks) const noexcept = 0;
00100 
00111         virtual Result<FSDKError> warp(
00112             const Landmarks68& landmarks68,
00113             const Transformation& transformation,
00114             Landmarks68& transformedLandmarks68) const noexcept = 0;
00115 
00129         virtual Result<FSDKError> unwarp(
00130             const EyesEstimation& eyesEstimationInWarpCoordinates,
00131             const Transformation& transformation,
00132             EyesEstimation& eyesEstimation) const noexcept = 0;
00133 
00142         virtual Result<FSDKError> unwarp(
00143             const Landmarks5& warpedLandmarks5,
00144             const Transformation& transformation,
00145             Landmarks5& landmarks5) const noexcept = 0;
00146 
00155         virtual Result<FSDKError> unwarp(
00156             const Landmarks68& warpedLandmarks68,
00157             const Transformation& transformation,
00158             Landmarks68& landmarks68) const noexcept = 0;
00159 
00160         virtual Result<FSDKError> unwarp(
00161             const GazeEstimation& warpedAngles,
00162             const Transformation& transformation,
00163             GazeEstimation& angles) const noexcept = 0;
00164 
00168         using ImageBatch = std::vector<Image>;
00169         using ImageBatchFuture = vlc::future<ImageBatch>;
00170 
00183         virtual ImageBatchFuture
00184         warpAsync(Span<const Image> images, Span<const Transformation> transformations) const = 0;
00185     };
00186 
00188 } // namespace fsdk
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines