Module: Okmain

Defined in:
lib/okmain.rb,
lib/okmain/oklab.rb,
lib/okmain/config.rb,
lib/okmain/kmeans.rb,
lib/okmain/scorer.rb,
lib/okmain/sampler.rb,
lib/okmain/version.rb,
lib/okmain/distance_mask.rb

Defined Under Namespace

Modules: DistanceMask, KMeans, Oklab, Sampler, Scorer Classes: Config

Constant Summary collapse

VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.colors(input, config: Config.new) ⇒ Array<Array<Integer>>

Extract up to 4 dominant colors from an image.

Parameters:

  • input (String, Vips::Image)

    file path or preloaded vips image

  • config (Okmain::Config) (defaults to: Config.new)

    optional scoring config

Returns:

  • (Array<Array<Integer>>)

    up to 4 [r, g, b] arrays sorted by score



19
20
21
22
23
24
# File 'lib/okmain.rb', line 19

def colors(input, config: Config.new)
  pixels, width, height = Sampler.sample(input)
  mask = DistanceMask.compute(width, height)
  centroids, assignments = KMeans.cluster(pixels)
  Scorer.score(centroids, assignments, mask, config)
end