6#include "opencv2/opencv.hpp" 
   17template<
typename t = u
int16_t>
 
   19    static_assert(std::is_arithmetic<t>::value, 
"Template paramter (t) must be arithmetic type.");
 
   20    return static_cast<t
>(v);
 
   23inline static std::array<std::array<uint16_t, 2>, 3> 
weights_map{
 
   24    std::array<uint16_t, 2>{
~BGR::GREEN, 
~BGR::RED},        
 
   25    std::array<uint16_t, 2>{
~BGR::BLUE, 
~BGR::RED},     
 
   26    std::array<uint16_t, 2>{
~BGR::BLUE, 
~BGR::GREEN},   
 
   34inline static const std::array<std::array<cv::Scalar, 3>, 3> 
markup_map{
 
   35    std::array<cv::Scalar, 3>{cv::Scalar(255, 0, 0), cv::Scalar(255, 127, 0), cv::Scalar(255, 255, 0)}, 
 
   36    std::array<cv::Scalar, 3>{cv::Scalar(0, 255, 0), cv::Scalar(0, 255, 127), cv::Scalar(0, 255, 255)}, 
 
   37    std::array<cv::Scalar, 3>{cv::Scalar(0, 0, 255), cv::Scalar(127, 0, 255), cv::Scalar(255, 0, 255)}, 
 
static const std::array< std::array< cv::Scalar, 3 >, 3 > markup_map
 
static std::array< std::array< uint16_t, 2 >, 3 > weights_map