| OLD | NEW |
| 1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 """Color Histograms and implementations of functions operating on them.""" | 5 """Color Histograms and implementations of functions operating on them.""" |
| 6 | 6 |
| 7 from __future__ import division | 7 from __future__ import division |
| 8 | 8 |
| 9 import collections | 9 import collections |
| 10 | 10 |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 46 remainder += value1 * n2 - value2 * n1 | 46 remainder += value1 * n2 - value2 * n1 |
| 47 total += abs(remainder) | 47 total += abs(remainder) |
| 48 assert remainder == 0, ( | 48 assert remainder == 0, ( |
| 49 '%s pixel(s) left over after computing histogram distance.' | 49 '%s pixel(s) left over after computing histogram distance.' |
| 50 % abs(remainder)) | 50 % abs(remainder)) |
| 51 return abs(float(total) / n1 / n2) | 51 return abs(float(total) / n1 / n2) |
| 52 | 52 |
| 53 | 53 |
| 54 class ColorHistogram( | 54 class ColorHistogram( |
| 55 collections.namedtuple('ColorHistogram', ['r', 'g', 'b', 'default_color'])): | 55 collections.namedtuple('ColorHistogram', ['r', 'g', 'b', 'default_color'])): |
| 56 # pylint: disable=W0232 | 56 # pylint: disable=no-init |
| 57 # pylint: disable=E1002 | 57 # pylint: disable=E1002 |
| 58 | 58 |
| 59 def __new__(cls, r, g, b, default_color=None): | 59 def __new__(cls, r, g, b, default_color=None): |
| 60 return super(ColorHistogram, cls).__new__(cls, r, g, b, default_color) | 60 return super(ColorHistogram, cls).__new__(cls, r, g, b, default_color) |
| 61 | 61 |
| 62 def Distance(self, other): | 62 def Distance(self, other): |
| 63 total = 0 | 63 total = 0 |
| 64 for i in xrange(3): | 64 for i in xrange(3): |
| 65 default_color = self[3][i] if self[3] is not None else None | 65 default_color = self[3][i] if self[3] is not None else None |
| 66 total += HistogramDistance(self[i], other[i], default_color) | 66 total += HistogramDistance(self[i], other[i], default_color) |
| 67 return total | 67 return total |
| OLD | NEW |