X-Git-Url: http://git.tomasm.cz/imago.git/blobdiff_plain/a5500034cf027ff6fec0d1dc236b36d3b1d82778..f64441a0280fdf8aa81c2ef423d696aa49a8ffae:/imago_pack/intrsc.py?ds=sidebyside diff --git a/imago_pack/intrsc.py b/imago_pack/intrsc.py index 04ef350..45308b1 100644 --- a/imago_pack/intrsc.py +++ b/imago_pack/intrsc.py @@ -59,7 +59,7 @@ def board(image, lines, show_all, do_something): pyplot.show() clusters = k_means.cluster(3, 2,zip(zip(luma, saturation), range(len(luma))), - [[0., 0.], [0.5, 0.5], [1., 0.]]) + [[0., 0.5], [0.5, 0.5], [1., 0.5]]) #clusters.sort(key=mean_luma) if show_all: @@ -124,16 +124,19 @@ def RGBtoSat(c): def stone_color_raw(image, (x, y)): """Given image and coordinates, return stone color.""" + size = 3 suma = [] - for i in range(-2, 3): - for j in range(-2, 3): + t = 0 + for i in range(-size, size + 1): + for j in range(-size, size + 1): try: suma.append(image.getpixel((x + i, y + j))) + t += 1 except IndexError: 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(RGBtoSat(s) for s in suma) / 25. - 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.] + luma = sum([0.30 * sum(s[0] for s in suma) / t, 0.59 * sum(s[1] for s in suma) / t, + 0.11 * sum(s[2] for s in suma) / t]) / 255. + saturation = sum(RGBtoSat(s) for s in suma) / t + color = [sum(s[0] for s in suma) / t, sum(s[1] for s in suma) / t, + sum(s[2] for s in suma) / t] return luma, saturation, color