#pragma once #include #include #include #include #include #include #include #include #include namespace fingerprints { struct wvlt_rgb { // a double for (x, y) location represented in a single int using coefficient = std::pair; using pre_fingerprint = std::array, 3>; std::array reds; std::array greens; std::array blues; static pre_fingerprint pre_calculate(av::frame const & frame); static wvlt_rgb calculate(av::frame const & frame); double distance_to(pre_fingerprint const & fingerprint) const; static std::string name(){ return "wvlt-rgb-20x20x20"; } private: friend class boost::serialization::access; template void serialize(Archive & ar, const unsigned int /*version*/){ ar & reds; ar & greens; ar & blues; } }; } // namespace fingerprints