X-Git-Url: http://git.tomasm.cz/imago.git/blobdiff_plain/801adea375f57a51cf6dd23cd4cda496cfc47bfd..c8277daa35d45569a356edb7be50d83f73c4e4d1:/imago_pack/intrsc.py?ds=inline diff --git a/imago_pack/intrsc.py b/imago_pack/intrsc.py index d26bea4..ce89cb2 100644 --- a/imago_pack/intrsc.py +++ b/imago_pack/intrsc.py @@ -108,6 +108,14 @@ def intersections_from_angl_dist(lines, size, get_all=True): intersections.append(line) return intersections +def RGBtoSat(c): + max_diff = max(c) - min(c) + if max_diff == 0: + return 0 + else: + #TODO simplify this + return max_diff / float(255. - abs(max(c) + min(c) - 255)) + def stone_color_raw(image, (x, y)): """Given image and coordinates, return stone color.""" suma = [] @@ -119,8 +127,7 @@ def stone_color_raw(image, (x, y)): pass luma = sum([0.30 * sum(s[0] for s in suma) / 25., 0.59 * sum(s[1] for s in suma) / 25., 0.11 * sum(s[2] for s in suma) / 25.]) / 255. - saturation = sum(max(s) - min(s) / float(255. - abs(max(s) + min(s) - 255)) - for s in suma) / (25. * 255.) + saturation = sum(RGBtoSat(s) for s in suma) / (25. * 255.) color = [sum(s[0] for s in suma) / 25., sum(s[1] for s in suma) / 25., sum(s[2] for s in suma) / 25.] return luma, saturation, color