Overview
DigitalZoom C++ library implements digital zoom based on OpenCV. The library supports different interpolation algorithms: bicubic interpolation, resampling using pixel area relation, Lanczos 8x8, bilinear interpolation, bit exact bilinear interpolation, nearest neighbor interpolation and bit exact nearest neighbor interpolation. The library supports digital zoom level from x1 to x20. The library depends on VFilter library (provides interface for video filter, source code included, Apache 2.0 license) and OpenCV library (version >= 4.5, linked, Apache 2.0 license). The library uses C++17 standard.
Documentation
Documentation: GO TO DOCUMENTATION
Simple interface
class DigitalZoom : public VFilter
{
public:
/// Get the version of the DigitalZoom class.
static std::string getVersion();
/// Initialize digital zoom.
bool initVFilter(VFilterParams& params) override;
/// Set VFilter parameter.
bool setParam(VFilterParam id, float value) override;
/// Get the value of a specific VFilter parameter.
float getParam(VFilterParam id) override;
/// Get the structure containing all VFilter parameters.
void getParams(VFilterParams& params) override;
/// Execute a VFilter action command.
bool executeCommand(VFilterCommand id) override;
/// Process frame.
bool processFrame(cr::video::Frame& frame) override;
/// Set mask for filter.
bool setMask(cr::video::Frame mask) override;
/// Decode and execute command.
bool decodeAndExecuteCommand(uint8_t* data, int size) override;
};