image-colours/main_colour_extractor.cpp

24 lines
542 B
C++

#include "main_colour_extractor.h"
#include <math.h>
// CONSTRUCTORS
MainColourExtractor::MainColourExtractor(size_t h_levels, size_t s_levels,
size_t l_levels)
: ColourExtractor(h_levels, s_levels, l_levels)
{
}
// PROTECTED FUNCS
size_t MainColourExtractor::evaluate_colour(struct ColourHSL hsl, double weight)
const
{
size_t result = 0;
result = static_cast<size_t>(round(1000.0 * pow(weight, 0.3) *
(hsl.s + 1.0 / m_s_levels) *
((1.0 - fabs(2 * hsl.l - 1.0)) * (1 - 1.0 / m_l_levels) + 1.0 / m_l_levels)));
return result;
}