diff --git a/qa/data/cli/basic_test/basic_test.png b/qa/data/cli/basic_test/basic_test.png index 167abbed70..61b296ccda 100644 Binary files a/qa/data/cli/basic_test/basic_test.png and b/qa/data/cli/basic_test/basic_test.png differ diff --git a/qa/data/cli/basic_test/basic_test_nobg_bnw_nods.png b/qa/data/cli/basic_test/basic_test_nobg_bnw_nods.png index df955e7a3d..77bae42b44 100644 Binary files a/qa/data/cli/basic_test/basic_test_nobg_bnw_nods.png and b/qa/data/cli/basic_test/basic_test_nobg_bnw_nods.png differ diff --git a/qa/tests/cli/test_sch.py b/qa/tests/cli/test_sch.py index 4feb15f0f1..9789a19ba8 100644 --- a/qa/tests/cli/test_sch.py +++ b/qa/tests/cli/test_sch.py @@ -28,7 +28,7 @@ from pathlib import Path import pytest from typing import List import platform -from PIL import Image, ImageChops +from PIL import Image, ImageChops, ImageFilter import numpy as np def images_are_equal( image1: str, image2: str ): @@ -45,13 +45,27 @@ def images_are_equal( image1: str, image2: str ): retval = True if sum != 0.0: - norm_sum = sum / np.sqrt( sum ) - retval = norm_sum < 0.001 + # images are not identical - lets allow 1 pixel error difference (for curved edges) - if not retval: diff = ImageChops.difference( image1, image2 ) - diff_name = image1.filename + ".diff.png" - diff.save( diff_name ) + diffgray=diff.convert("L") + diffThresholded=diffgray.point(lambda x: 255 if x > 1 else 0) + diffBinary=diffThresholded.convert("1") + + # erode binary image by 1 pixel + diffEroded = diffBinary.filter(ImageFilter.MinFilter(3)) + + erodedSum = np.sum( np.asarray ( diffEroded ).astype( np.float32 ) ) + + retval = erodedSum == 0 + + if not retval: + diff_name = image1.filename + ".diff1.png" + diff.save( diff_name ) + diffEroded_name = image1.filename + ".diffEroded_erodedsum" + str(erodedSum)+ ".png" + diffEroded.convert("RGB") + diffEroded.save( diffEroded_name ) + return retval @@ -93,7 +107,7 @@ def test_sch_export_svg( kitest, compare_file_path = kitest.get_data_file_path( compare_fn ) - cairosvg.svg2png( url=str( output_svg_path ), write_to=str( png_converted_from_svg_path ), dpi=300 ) + cairosvg.svg2png( url=str( output_svg_path ), write_to=str( png_converted_from_svg_path ), dpi=1200 ) assert images_are_equal( png_converted_from_svg_path, compare_file_path )