Index: tools/telemetry/telemetry/util/color_histogram.py |
diff --git a/tools/telemetry/telemetry/util/color_histogram.py b/tools/telemetry/telemetry/util/color_histogram.py |
deleted file mode 100644 |
index 76bb4b9caffc13350387a208880139aab252279a..0000000000000000000000000000000000000000 |
--- a/tools/telemetry/telemetry/util/color_histogram.py |
+++ /dev/null |
@@ -1,67 +0,0 @@ |
-# Copyright 2014 The Chromium Authors. All rights reserved. |
-# Use of this source code is governed by a BSD-style license that can be |
-# found in the LICENSE file. |
- |
-"""Color Histograms and implementations of functions operating on them.""" |
- |
-from __future__ import division |
- |
-import collections |
- |
-from telemetry.internal.util import external_modules |
- |
-np = external_modules.ImportOptionalModule('numpy') |
- |
- |
-def HistogramDistance(hist1, hist2, default_color=None): |
- """Earth mover's distance. |
- http://en.wikipedia.org/wiki/Earth_mover's_distance""" |
- if len(hist1) != len(hist2): |
- raise ValueError('Trying to compare histograms ' |
- 'of different sizes, %s != %s' % (len(hist1), len(hist2))) |
- if len(hist1) == 0: |
- return 0 |
- |
- sum_func = np.sum if np is not None else sum |
- |
- n1 = sum_func(hist1) |
- n2 = sum_func(hist2) |
- if (n1 == 0 or n2 == 0) and default_color is None: |
- raise ValueError('Histogram has no data and no default color.') |
- if n1 == 0: |
- hist1[default_color] = 1 |
- n1 = 1 |
- if n2 == 0: |
- hist2[default_color] = 1 |
- n2 = 1 |
- |
- if np is not None: |
- remainder = np.multiply(hist1, n2) - np.multiply(hist2, n1) |
- cumsum = np.cumsum(remainder) |
- total = np.sum(np.abs(cumsum)) |
- else: |
- total = 0 |
- remainder = 0 |
- for value1, value2 in zip(hist1, hist2): |
- remainder += value1 * n2 - value2 * n1 |
- total += abs(remainder) |
- assert remainder == 0, ( |
- '%s pixel(s) left over after computing histogram distance.' |
- % abs(remainder)) |
- return abs(float(total) / n1 / n2) |
- |
- |
-class ColorHistogram( |
- collections.namedtuple('ColorHistogram', ['r', 'g', 'b', 'default_color'])): |
- # pylint: disable=no-init |
- # pylint: disable=super-on-old-class |
- |
- def __new__(cls, r, g, b, default_color=None): |
- return super(ColorHistogram, cls).__new__(cls, r, g, b, default_color) |
- |
- def Distance(self, other): |
- total = 0 |
- for i in xrange(3): |
- default_color = self[3][i] if self[3] is not None else None |
- total += HistogramDistance(self[i], other[i], default_color) |
- return total |