Browse Source

analyzer cleanup, add universal latte script

Kirk Trombley 2 years ago
parent
commit
fd376604e2
2 changed files with 26 additions and 8 deletions
  1. 0 8
      tools/analyze.py
  2. 26 0
      tools/latte.py

+ 0 - 8
tools/analyze.py

@@ -189,14 +189,6 @@ def get_srgb_pixels(img: Image.Image) -> np.array:
   return np.array(rgb)
 
 
-def search_files(image_dir: str) -> dict[str, list[str]]:
-  files = defaultdict(list)
-  for image_filename in os.listdir(image_dir):
-    form_name = image_filename.rsplit("-", maxsplit=1)[0]
-    files[form_name].append(Path(image_dir, image_filename))
-  return files
-
-
 def log(*a, **kw):
   print(*a, **kw, flush=True)
 

+ 26 - 0
tools/latte.py

@@ -0,0 +1,26 @@
+import json
+
+import numpy as np
+
+from analyze import oklab2hex
+
+with open("web/database.js") as infile:
+  next(infile)
+  data = [
+    (d := json.loads(s))["total"]
+    for line in infile
+    if (s := line.strip().strip(",")) != "]"
+  ]
+
+sizes = np.array([d["size"] for d in data])
+centroids = np.array([d["centroid"] for d in data])
+medians = np.array([d["median"] for d in data])
+
+print("Simple mean of...")
+print("  Centroids:", oklab2hex(centroids.mean(axis=0)))
+print("  Medians:", oklab2hex(medians.mean(axis=0)))
+print("Reweighted mean of...")
+print("  Centroids:", oklab2hex(
+  (centroids * sizes[:, np.newaxis]).sum(axis=0) / sizes.sum()))
+print("  Medians:", oklab2hex(
+  (medians * sizes[:, np.newaxis]).sum(axis=0) / sizes.sum()))