aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm
diff options
context:
space:
mode:
authorGravatar epoger <epoger@google.com>2014-06-11 20:35:59 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2014-06-11 20:35:59 -0700
commit984b97c496e3e2d798c1091de4066f495e8afebd (patch)
tree5dc9466fc3d91c0ef62d12f3c73e38976bef688e /gm
parentcbbc7bf971fdaaae6dbb09fef6c611f3fb806a14 (diff)
rebaseline_server: delete no-longer-used weightedDiffMeasure
(replaced by perceptual diff) NOTRY=True R=rmistry@google.com TBR=rmistry Author: epoger@google.com Review URL: https://codereview.chromium.org/334533003
Diffstat (limited to 'gm')
-rw-r--r--gm/rebaseline_server/imagediffdb.py37
-rwxr-xr-xgm/rebaseline_server/imagediffdb_test.py14
-rwxr-xr-xgm/rebaseline_server/imagepair_test.py2
-rwxr-xr-xgm/rebaseline_server/imagepairset_test.py2
-rw-r--r--gm/rebaseline_server/static/constants.js1
-rw-r--r--gm/rebaseline_server/static/view.html2
-rw-r--r--gm/rebaseline_server/testdata/outputs/expected/compare_configs_test.CompareConfigsTest.test_gm/gm.json14
-rw-r--r--gm/rebaseline_server/testdata/outputs/expected/compare_to_expectations_test.CompareToExpectationsTest.test_gm/gm.json17
8 files changed, 18 insertions, 71 deletions
diff --git a/gm/rebaseline_server/imagediffdb.py b/gm/rebaseline_server/imagediffdb.py
index a37e8ce956..6b684143b0 100644
--- a/gm/rebaseline_server/imagediffdb.py
+++ b/gm/rebaseline_server/imagediffdb.py
@@ -49,7 +49,6 @@ KEY__DIFFERENCES__MAX_DIFF_PER_CHANNEL = 'maxDiffPerChannel'
KEY__DIFFERENCES__NUM_DIFF_PIXELS = 'numDifferingPixels'
KEY__DIFFERENCES__PERCENT_DIFF_PIXELS = 'percentDifferingPixels'
KEY__DIFFERENCES__PERCEPTUAL_DIFF = 'perceptualDifference'
-KEY__DIFFERENCES__WEIGHTED_DIFF = 'weightedDiffMeasure'
class DiffRecord(object):
@@ -117,8 +116,6 @@ class DiffRecord(object):
diff_image = _generate_image_diff(actual_image, expected_image)
diff_histogram = diff_image.histogram()
(diff_width, diff_height) = diff_image.size
- self._weighted_diff_measure = _calculate_weighted_diff_metric(
- diff_histogram, diff_width * diff_height)
self._max_diff_per_channel = _max_per_band(diff_histogram)
# Generate the whitediff image (any differing pixels show as white).
@@ -189,14 +186,6 @@ class DiffRecord(object):
"""Returns the perceptual difference percentage."""
return self._perceptual_difference
- def get_weighted_diff_measure(self):
- """Returns a weighted measure of image diffs, as a float between 0 and 100
- (inclusive).
-
- TODO(epoger): Delete this function, now that we have perceptual diff?
- """
- return self._weighted_diff_measure
-
def get_max_diff_per_channel(self):
"""Returns the maximum difference between the expected and actual images
for each R/G/B channel, as a list."""
@@ -209,7 +198,6 @@ class DiffRecord(object):
KEY__DIFFERENCES__NUM_DIFF_PIXELS: self._num_pixels_differing,
KEY__DIFFERENCES__PERCENT_DIFF_PIXELS:
self.get_percent_pixels_differing(),
- KEY__DIFFERENCES__WEIGHTED_DIFF: self.get_weighted_diff_measure(),
KEY__DIFFERENCES__MAX_DIFF_PER_CHANNEL: self._max_diff_per_channel,
KEY__DIFFERENCES__PERCEPTUAL_DIFF: self._perceptual_difference,
}
@@ -290,31 +278,6 @@ class ImageDiffDB(object):
# Utility functions
-def _calculate_weighted_diff_metric(histogram, num_pixels):
- """Given the histogram of a diff image (per-channel diff at each
- pixel between two images), calculate the weighted diff metric (a
- stab at how different the two images really are).
-
- TODO(epoger): Delete this function, now that we have perceptual diff?
-
- Args:
- histogram: PIL histogram of a per-channel diff between two images
- num_pixels: integer; the total number of pixels in the diff image
-
- Returns: a weighted diff metric, as a float between 0 and 100 (inclusive).
- """
- # TODO(epoger): As a wild guess at an appropriate metric, weight each
- # different pixel by the square of its delta value. (The more different
- # a pixel is from its expectation, the more we care about it.)
- assert(len(histogram) % VALUES_PER_BAND == 0)
- num_bands = len(histogram) / VALUES_PER_BAND
- max_diff = num_pixels * num_bands * (VALUES_PER_BAND - 1)**2
- total_diff = 0
- for index in xrange(len(histogram)):
- total_diff += histogram[index] * (index % VALUES_PER_BAND)**2
- return float(100 * total_diff) / max_diff
-
-
def _max_per_band(histogram):
"""Given the histogram of an image, return the maximum value of each band
(a.k.a. "color channel", such as R/G/B) across the entire image.
diff --git a/gm/rebaseline_server/imagediffdb_test.py b/gm/rebaseline_server/imagediffdb_test.py
index b1d534a5e0..4fc8c66f2b 100755
--- a/gm/rebaseline_server/imagediffdb_test.py
+++ b/gm/rebaseline_server/imagediffdb_test.py
@@ -56,23 +56,22 @@ class ImageDiffDbTest(unittest.TestCase):
# 2. actual image locator
# 3. actual image URL
# 4. expected percent_pixels_differing (as a string, to 4 decimal places)
- # 5. expected weighted_diff_measure (as a string, to 4 decimal places)
- # 6. expected perceptual difference (as a string, to 4 decimal places)
- # 7. expected max_diff_per_channel
+ # 5. expected perceptual difference (as a string, to 4 decimal places)
+ # 6. expected max_diff_per_channel
selftests = [
[
'arcofzorro/16206093933823793653',
IMG_URL_BASE + 'arcofzorro/16206093933823793653.png',
'arcofzorro/13786535001616823825',
IMG_URL_BASE + 'arcofzorro/13786535001616823825.png',
- '0.0662', '0.0113', '0.0662', [255, 255, 247],
+ '0.0662', '0.0662', [255, 255, 247],
],
[
'gradients_degenerate_2pt/10552995703607727960',
IMG_URL_BASE + 'gradients_degenerate_2pt/10552995703607727960.png',
'gradients_degenerate_2pt/11198253335583713230',
IMG_URL_BASE + 'gradients_degenerate_2pt/11198253335583713230.png',
- '100.0000', '66.6667', '100.0000', [255, 0, 255],
+ '100.0000', '100.0000', [255, 0, 255],
],
]
@@ -89,9 +88,8 @@ class ImageDiffDbTest(unittest.TestCase):
actual_image_locator=selftest[2])
self.assertEqual('%.4f' % record.get_percent_pixels_differing(),
selftest[4])
- self.assertEqual('%.4f' % record.get_weighted_diff_measure(), selftest[5])
- self.assertEqual('%.4f' % record.get_perceptual_difference(), selftest[6])
- self.assertEqual(record.get_max_diff_per_channel(), selftest[7])
+ self.assertEqual('%.4f' % record.get_perceptual_difference(), selftest[5])
+ self.assertEqual(record.get_max_diff_per_channel(), selftest[6])
def main():
diff --git a/gm/rebaseline_server/imagepair_test.py b/gm/rebaseline_server/imagepair_test.py
index 95b7e4d44d..3b4cf8e95c 100755
--- a/gm/rebaseline_server/imagepair_test.py
+++ b/gm/rebaseline_server/imagepair_test.py
@@ -88,7 +88,6 @@ class ImagePairTest(unittest.TestCase):
'numDifferingPixels': 662,
'percentDifferingPixels': 0.0662,
'perceptualDifference': 0.06620000000000914,
- 'weightedDiffMeasure': 0.01127756555171088,
},
'imageAUrl': 'arcofzorro/16206093933823793653.png',
'imageBUrl': 'arcofzorro/13786535001616823825.png',
@@ -115,7 +114,6 @@ class ImagePairTest(unittest.TestCase):
'numDifferingPixels': 102400,
'percentDifferingPixels': 100.00,
'perceptualDifference': 100.00,
- 'weightedDiffMeasure': 66.66666666666667,
},
'expectations': {
'bugs': [1001, 1002],
diff --git a/gm/rebaseline_server/imagepairset_test.py b/gm/rebaseline_server/imagepairset_test.py
index b5d6206d70..c2f17ba01a 100755
--- a/gm/rebaseline_server/imagepairset_test.py
+++ b/gm/rebaseline_server/imagepairset_test.py
@@ -35,7 +35,6 @@ IMAGEPAIR_2_AS_DICT = {
'maxDiffPerChannel': [1, 2, 3],
'numDifferingPixels': 111,
'percentDifferingPixels': 22.222,
- 'weightedDiffMeasure': 33.333,
},
imagepair.KEY__IMAGEPAIRS__EXTRACOLUMNS: {
'builder': 'MyBuilder',
@@ -50,7 +49,6 @@ IMAGEPAIR_3_AS_DICT = {
'maxDiffPerChannel': [4, 5, 6],
'numDifferingPixels': 111,
'percentDifferingPixels': 44.444,
- 'weightedDiffMeasure': 33.333,
},
imagepair.KEY__IMAGEPAIRS__EXPECTATIONS: {
'bugs': [1001, 1002],
diff --git a/gm/rebaseline_server/static/constants.js b/gm/rebaseline_server/static/constants.js
index 8e71311266..7db245daf0 100644
--- a/gm/rebaseline_server/static/constants.js
+++ b/gm/rebaseline_server/static/constants.js
@@ -20,7 +20,6 @@ module.constant('constants', (function() {
KEY__DIFFERENCES__NUM_DIFF_PIXELS: 'numDifferingPixels',
KEY__DIFFERENCES__PERCENT_DIFF_PIXELS: 'percentDifferingPixels',
KEY__DIFFERENCES__PERCEPTUAL_DIFF: 'perceptualDifference',
- KEY__DIFFERENCES__WEIGHTED_DIFF: 'weightedDiffMeasure',
// NOTE: Keep these in sync with ../imagepair.py
KEY__IMAGEPAIRS__DIFFERENCES: 'differenceData',
diff --git a/gm/rebaseline_server/static/view.html b/gm/rebaseline_server/static/view.html
index 68340ebe14..fda767c5b4 100644
--- a/gm/rebaseline_server/static/view.html
+++ b/gm/rebaseline_server/static/view.html
@@ -280,7 +280,7 @@
<th width="{{imageSize}}">
<input type="radio"
name="sortColumnRadio"
- value="weightedDiffMeasure"
+ value="perceptualDiff"
ng-checked="(sortColumnKey == constants.KEY__DIFFERENCES__PERCEPTUAL_DIFF)"
ng-click="sortResultsBy(constants.KEY__IMAGEPAIRS__DIFFERENCES, constants.KEY__DIFFERENCES__PERCEPTUAL_DIFF)">
perceptual difference
diff --git a/gm/rebaseline_server/testdata/outputs/expected/compare_configs_test.CompareConfigsTest.test_gm/gm.json b/gm/rebaseline_server/testdata/outputs/expected/compare_configs_test.CompareConfigsTest.test_gm/gm.json
index d98ac41650..49a73f7261 100644
--- a/gm/rebaseline_server/testdata/outputs/expected/compare_configs_test.CompareConfigsTest.test_gm/gm.json
+++ b/gm/rebaseline_server/testdata/outputs/expected/compare_configs_test.CompareConfigsTest.test_gm/gm.json
@@ -94,7 +94,7 @@
}
},
"header": {
- "dataHash": "-3232866296817265056",
+ "dataHash": "5496105477154010366",
"isEditable": false,
"isExported": true,
"schemaVersion": 3,
@@ -189,8 +189,7 @@
],
"numDifferingPixels": 6081,
"percentDifferingPixels": 2.4324,
- "perceptualDifference": 1.917199999999994,
- "weightedDiffMeasure": 0.06644571780084584
+ "perceptualDifference": 1.917199999999994
},
"extraColumns": {
"builder": "Test-Builder-We-Have-No-Expectations-File-For",
@@ -211,8 +210,7 @@
],
"numDifferingPixels": 50097,
"percentDifferingPixels": 30.5767822265625,
- "perceptualDifference": 3.3917,
- "weightedDiffMeasure": 1.4826590790651433
+ "perceptualDifference": 3.3917
},
"extraColumns": {
"builder": "Test-Builder-We-Have-No-Expectations-File-For",
@@ -255,8 +253,7 @@
],
"numDifferingPixels": 6081,
"percentDifferingPixels": 2.4324,
- "perceptualDifference": 1.917199999999994,
- "weightedDiffMeasure": 0.06644571780084584
+ "perceptualDifference": 1.917199999999994
},
"extraColumns": {
"builder": "Test-Mac10.7-MacMini4.1-GeForce320M-x86_64-Debug",
@@ -277,8 +274,7 @@
],
"numDifferingPixels": 50097,
"percentDifferingPixels": 30.5767822265625,
- "perceptualDifference": 3.3917,
- "weightedDiffMeasure": 1.4826590790651433
+ "perceptualDifference": 3.3917
},
"extraColumns": {
"builder": "Test-Mac10.7-MacMini4.1-GeForce320M-x86_64-Debug",
diff --git a/gm/rebaseline_server/testdata/outputs/expected/compare_to_expectations_test.CompareToExpectationsTest.test_gm/gm.json b/gm/rebaseline_server/testdata/outputs/expected/compare_to_expectations_test.CompareToExpectationsTest.test_gm/gm.json
index c8c884bb10..f2f40d5078 100644
--- a/gm/rebaseline_server/testdata/outputs/expected/compare_to_expectations_test.CompareToExpectationsTest.test_gm/gm.json
+++ b/gm/rebaseline_server/testdata/outputs/expected/compare_to_expectations_test.CompareToExpectationsTest.test_gm/gm.json
@@ -110,7 +110,7 @@
}
},
"header": {
- "dataHash": "-5343462047057549086",
+ "dataHash": "7849962375815855931",
"isEditable": false,
"isExported": true,
"schemaVersion": 3,
@@ -128,8 +128,7 @@
],
"numDifferingPixels": 120000,
"percentDifferingPixels": 75.0,
- "perceptualDifference": 50.122499999999995,
- "weightedDiffMeasure": 8.413046264257337
+ "perceptualDifference": 50.122499999999995
},
"expectations": {
"bugs": null,
@@ -155,8 +154,7 @@
],
"numDifferingPixels": 765891,
"percentDifferingPixels": 97.38807678222656,
- "perceptualDifference": 25.25699999999999,
- "weightedDiffMeasure": 14.10677058693997
+ "perceptualDifference": 25.25699999999999
},
"expectations": {
"bugs": [
@@ -184,8 +182,7 @@
],
"numDifferingPixels": 422432,
"percentDifferingPixels": 53.715006510416664,
- "perceptualDifference": 25.120500000000007,
- "weightedDiffMeasure": 14.005823726182287
+ "perceptualDifference": 25.120500000000007
},
"expectations": {
"bugs": [
@@ -213,8 +210,7 @@
],
"numDifferingPixels": 53150,
"percentDifferingPixels": 12.035778985507246,
- "perceptualDifference": 100,
- "weightedDiffMeasure": 3.713243437353155
+ "perceptualDifference": 100
},
"expectations": {
"bugs": [
@@ -242,8 +238,7 @@
],
"numDifferingPixels": 53773,
"percentDifferingPixels": 12.17685688405797,
- "perceptualDifference": 100,
- "weightedDiffMeasure": 3.6723483686597684
+ "perceptualDifference": 100
},
"expectations": {
"bugs": [