aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm
diff options
context:
space:
mode:
authorGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2014-02-11 13:30:33 +0000
committerGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2014-02-11 13:30:33 +0000
commit589bd3da3403e305af802d412d14213f64478b2d (patch)
tree9bd995c91958e9fcd4f2d6cb155cc5aede6e4b63 /gm
parentaf34eb9b747ad1fa1d927103c54042a053960dc8 (diff)
Revert of Add the perceptual difference metric to the rebaseline server (https://codereview.chromium.org/147453003/)
Reason for revert: Caused failure in RunGmSelfTests: http://108.170.219.160:10117/builders/Housekeeper-PerCommit/builds/154/steps/RunGmSelfTests/logs/stdio Filed: https://code.google.com/p/skia/issues/detail?id=2160 Original issue's description: > Add the perceptual difference metric to the rebaseline server > > * Finds the location of the skpdiff binary. > * Calculates the perceptual difference percentage using the skpdiff binary. > * Replaces the weightedDiffMeasure in view.html with perceptualDifferent. > > BUG=skia:2019 > NOTRY=true > > Committed: http://code.google.com/p/skia/source/detail?r=13398 R=epoger@google.com TBR=epoger@google.com NOTREECHECKS=true NOTRY=true BUG=skia:2019 Author: rmistry@google.com Review URL: https://codereview.chromium.org/131453017 git-svn-id: http://skia.googlecode.com/svn/trunk@13399 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'gm')
-rw-r--r--gm/rebaseline_server/imagediffdb.py37
-rwxr-xr-xgm/rebaseline_server/imagediffdb_test.py13
-rwxr-xr-xgm/rebaseline_server/results.py3
-rw-r--r--gm/rebaseline_server/static/view.html6
4 files changed, 8 insertions, 51 deletions
diff --git a/gm/rebaseline_server/imagediffdb.py b/gm/rebaseline_server/imagediffdb.py
index d168c888a7..936301e1cd 100644
--- a/gm/rebaseline_server/imagediffdb.py
+++ b/gm/rebaseline_server/imagediffdb.py
@@ -10,13 +10,10 @@ Calulate differences between image pairs, and store them in a database.
"""
import contextlib
-import csv
import logging
import os
import re
import shutil
-import sys
-import tempfile
import urllib
try:
from PIL import Image, ImageChops
@@ -24,15 +21,6 @@ except ImportError:
raise ImportError('Requires PIL to be installed; see '
+ 'http://www.pythonware.com/products/pil/')
-# Set the PYTHONPATH to include the tools directory.
-sys.path.append(
- os.path.join(
- os.path.dirname(os.path.realpath(__file__)), os.pardir, os.pardir,
- 'tools'))
-import find_run_binary
-
-SKPDIFF_BINARY_NAME = 'skpdiff'
-
DEFAULT_IMAGE_SUFFIX = '.png'
DEFAULT_IMAGES_SUBDIR = 'images'
@@ -111,27 +99,6 @@ class DiffRecord(object):
whitediff_image = (graydiff_image.point(lambda p: p > 0 and VALUES_PER_BAND)
.convert('1', dither=Image.NONE))
- # Calculate the perceptual difference percentage.
- skpdiff_csv_dir = tempfile.mkdtemp()
- try:
- skpdiff_csv_output = os.path.join(skpdiff_csv_dir, 'skpdiff-output.csv')
- skpdiff_binary = find_run_binary.find_path_to_program(SKPDIFF_BINARY_NAME)
- expected_img = os.path.join(storage_root, expected_images_subdir,
- str(expected_image_locator) + image_suffix)
- actual_img = os.path.join(storage_root, actual_images_subdir,
- str(actual_image_locator) + image_suffix)
- find_run_binary.run_command(
- [skpdiff_binary, '-p', expected_img, actual_img,
- '--csv', skpdiff_csv_output, '-d', 'perceptual'])
- with contextlib.closing(open(skpdiff_csv_output)) as csv_file:
- for row in csv.DictReader(csv_file):
- perceptual_similarity = float(row[' perceptual'].strip())
- # skpdiff returns the perceptual similarity, convert it to get the
- # perceptual difference percentage.
- self._perceptual_difference = 100 - (perceptual_similarity * 100)
- finally:
- shutil.rmtree(skpdiff_csv_dir)
-
# Final touches on diff_image: use whitediff_image as an alpha mask.
# Unchanged pixels are transparent; differing pixels are opaque.
diff_image.putalpha(whitediff_image)
@@ -161,10 +128,6 @@ class DiffRecord(object):
return ((float(self._num_pixels_differing) * 100) /
(self._width * self._height))
- def get_perceptual_difference(self):
- """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)."""
diff --git a/gm/rebaseline_server/imagediffdb_test.py b/gm/rebaseline_server/imagediffdb_test.py
index b1d534a5e0..558a816a02 100755
--- a/gm/rebaseline_server/imagediffdb_test.py
+++ b/gm/rebaseline_server/imagediffdb_test.py
@@ -19,8 +19,7 @@ import unittest
import imagediffdb
-IMG_URL_BASE = ('http://chromium-skia-gm.commondatastorage.googleapis.com/gm/'
- 'bitmap-64bitMD5/')
+IMG_URL_BASE = 'http://chromium-skia-gm.commondatastorage.googleapis.com/gm/bitmap-64bitMD5/'
class ImageDiffDbTest(unittest.TestCase):
@@ -57,22 +56,21 @@ class ImageDiffDbTest(unittest.TestCase):
# 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
+ # 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.0113', [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', '66.6667', [255, 0, 255],
],
]
@@ -90,8 +88,7 @@ class ImageDiffDbTest(unittest.TestCase):
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(record.get_max_diff_per_channel(), selftest[6])
def main():
diff --git a/gm/rebaseline_server/results.py b/gm/rebaseline_server/results.py
index 3b57bc1e20..fff0a941e8 100755
--- a/gm/rebaseline_server/results.py
+++ b/gm/rebaseline_server/results.py
@@ -432,7 +432,6 @@ class Results(object):
results_for_this_test['numDifferingPixels'] = 0
results_for_this_test['percentDifferingPixels'] = 0
results_for_this_test['weightedDiffMeasure'] = 0
- results_for_this_test['perceptualDifference'] = 0
results_for_this_test['maxDiffPerChannel'] = 0
else:
try:
@@ -445,8 +444,6 @@ class Results(object):
diff_record.get_percent_pixels_differing())
results_for_this_test['weightedDiffMeasure'] = (
diff_record.get_weighted_diff_measure())
- results_for_this_test['perceptualDifference'] = (
- diff_record.get_perceptual_difference())
results_for_this_test['maxDiffPerChannel'] = (
diff_record.get_max_diff_per_channel())
except KeyError:
diff --git a/gm/rebaseline_server/static/view.html b/gm/rebaseline_server/static/view.html
index 9ce3fae140..79335ca861 100644
--- a/gm/rebaseline_server/static/view.html
+++ b/gm/rebaseline_server/static/view.html
@@ -263,7 +263,7 @@
value="weightedDiffMeasure"
ng-checked="(sortColumn == 'weightedDiffMeasure')"
ng-click="sortResultsBy('weightedDiffMeasure')">
- perceptual difference
+ difference per pixel
<br>
<input type="range" ng-model="pixelDiffBgColorBrightness"
ng-init="pixelDiffBgColorBrightness=64; pixelDiffBgColor=brightnessStringToHexColor(pixelDiffBgColorBrightness)"
@@ -378,9 +378,9 @@
<!-- diffs: per-channel RGB deltas -->
<td valign="bottom" width="{{imageSize}}">
<div ng-hide="result.expectedHashDigest == result.actualHashDigest"
- title="Perceptual difference measure is {{result.perceptualDifference.toFixed(4)}}%. Maximum difference per channel: R={{result.maxDiffPerChannel[0]}}, G={{result.maxDiffPerChannel[1]}}, B={{result.maxDiffPerChannel[2]}}">
+ title="Weighted difference measure is {{result.weightedDiffMeasure.toFixed(4)}}%. Maximum difference per channel: R={{result.maxDiffPerChannel[0]}}, G={{result.maxDiffPerChannel[1]}}, B={{result.maxDiffPerChannel[2]}}">
- {{result.perceptualDifference.toFixed(4)}}%
+ {{result.weightedDiffMeasure.toFixed(4)}}%
{{result.maxDiffPerChannel}}
<br/>
<a href="/static/generated-images/diffs/{{result.expectedHashDigest}}-vs-{{result.actualHashDigest}}.png" target="_blank">View Image</a><br/>