From cfe73e464c223478c03c50873107d53b8cf2c9b3 Mon Sep 17 00:00:00 2001 From: Cheese-Bar <11911618@mail.sustech.edu.cn> Date: Sun, 24 Apr 2022 20:27:10 +0800 Subject: [PATCH] add a public function compareImagesIgnoreBackground() in ImageComparison, which provide an enhancement to compare two pictures while ignore there position in the same pure bacground. Three different test cases are added to confirm it's correctness. The related issue is #217 --- .../image/comparison/ImageComparison.java | 60 ++++++++++++++++++ .../comparison/ImageComparisonUnitTest.java | 57 +++++++++++++++++ .../ImageComparisonUtilUnitTest.java | 2 +- src/test/resources/actual#217a.png | Bin 0 -> 17243 bytes src/test/resources/actual#217b.png | Bin 0 -> 2344 bytes src/test/resources/actual#217c.png | Bin 0 -> 3799 bytes src/test/resources/expected#217a.png | Bin 0 -> 17713 bytes src/test/resources/expected#217b.png | Bin 0 -> 2359 bytes src/test/resources/expected#217c.png | Bin 0 -> 2814 bytes src/test/resources/result#217a.png | Bin 0 -> 26440 bytes src/test/resources/result#217c.png | Bin 0 -> 1673 bytes 11 files changed, 118 insertions(+), 1 deletion(-) create mode 100644 src/test/resources/actual#217a.png create mode 100644 src/test/resources/actual#217b.png create mode 100644 src/test/resources/actual#217c.png create mode 100644 src/test/resources/expected#217a.png create mode 100644 src/test/resources/expected#217b.png create mode 100644 src/test/resources/expected#217c.png create mode 100644 src/test/resources/result#217a.png create mode 100644 src/test/resources/result#217c.png diff --git a/src/main/java/com/github/romankh3/image/comparison/ImageComparison.java b/src/main/java/com/github/romankh3/image/comparison/ImageComparison.java index 728c6ef..e8262ec 100644 --- a/src/main/java/com/github/romankh3/image/comparison/ImageComparison.java +++ b/src/main/java/com/github/romankh3/image/comparison/ImageComparison.java @@ -705,4 +705,64 @@ public ImageComparison setExcludedRectangleColor(Color excludedRectangleColor) { this.excludedRectangleColor = excludedRectangleColor; return this; } + + + /** + * compare images while ignore their position in background + * @param dest is the result destination + * @return the result of the drawing. + */ + public ImageComparisonResult compareImagesIgnoreBackground(File dest) { + int exceptedBgd = getBackgroundRGB(expected); + int actualBgd = getBackgroundRGB(actual); + BufferedImage expectedInterest = getInterestArea(expected, exceptedBgd); + BufferedImage actualInterest = getInterestArea(actual, actualBgd); + ImageComparison imageComparison = new ImageComparison(expectedInterest, actualInterest, dest); + return imageComparison.compareImages(); + } + + private int getBackgroundRGB(BufferedImage image) { + // count RGB + Map countMap = new HashMap<>(); + for (int y = 0; y < image.getHeight(); y++) { + for (int x = 0; x < image.getWidth(); x++) { + if (!excludedAreas.contains(new Point(x, y))) { + int key = image.getRGB(x, y); + if (countMap.containsKey(key)) { + countMap.put(key, countMap.get(key) + 1); + } else { + countMap.put(key, 1); + } + } + } + } + // get background + int backGround = Integer.MIN_VALUE; + int maxCount = Integer.MIN_VALUE; + for (Map.Entry entry : countMap.entrySet()) { + if (entry.getValue() > maxCount) { + maxCount = entry.getValue(); + backGround = entry.getKey(); + } + } + return backGround; + } + + private BufferedImage getInterestArea(BufferedImage image, int background) { + Point leftTop = new Point(image.getWidth(), image.getHeight()); + Point rightBottom = new Point(0, 0); + for (int y = 0; y < image.getHeight(); y++) { + for (int x = 0; x < image.getWidth(); x++) { + if (!excludedAreas.contains(new Point(x, y))) { + if (image.getRGB(x, y) != background){ + leftTop = new Point(Math.min(x, leftTop.x), Math.min(y, leftTop.y)); + rightBottom = new Point(Math.max(x, rightBottom.x), Math.max(y, rightBottom.y)); + } + } + } + } + return image.getSubimage(leftTop.x, leftTop.y, + rightBottom.x - leftTop.x, rightBottom.y - leftTop.y); + } + } diff --git a/src/test/java/com/github/romankh3/image/comparison/ImageComparisonUnitTest.java b/src/test/java/com/github/romankh3/image/comparison/ImageComparisonUnitTest.java index 73b9c49..f0b286d 100644 --- a/src/test/java/com/github/romankh3/image/comparison/ImageComparisonUnitTest.java +++ b/src/test/java/com/github/romankh3/image/comparison/ImageComparisonUnitTest.java @@ -523,6 +523,63 @@ public void shouldProperlyCompareMisSizedImages() { assertTrue(differenceLessThan2); } + @DisplayName("Should properly compare while ignore white background for #217") + @Test + public void shouldProperlyHandelIssue217() { + //given + BufferedImage expected = readImageFromResources("expected#217a.png"); + BufferedImage actual = readImageFromResources("actual#217a.png"); + BufferedImage expectedResult = readImageFromResources("result#217a.png"); + + //when + ImageComparisonResult imageComparisonResult = + new ImageComparison(expected, actual) + .setPixelToleranceLevel(0.0) + .compareImagesIgnoreBackground(null); + + //then + assertEquals(MISMATCH, imageComparisonResult.getImageComparisonState()); + assertImagesEqual(expectedResult, imageComparisonResult.getResult()); + } + + + @DisplayName("Should properly compare while ignore white background for #217") + @Test + public void shouldProperlyCompareIgnoreBackground() { + //given + BufferedImage expected = readImageFromResources("expected#217b.png"); + BufferedImage actual = readImageFromResources("actual#217b.png"); + + //when + ImageComparisonResult imageComparisonResult = + new ImageComparison(expected, actual) + .setPixelToleranceLevel(0.0) + .compareImagesIgnoreBackground(null); + + //then + assertEquals(MATCH, imageComparisonResult.getImageComparisonState()); + } + + @DisplayName("Should properly compare difference while ignore background") + @Test + public void shouldProperlyCompareDifferenceAndIgnoreBackground() { + //given + BufferedImage expected = readImageFromResources("expected#217c.png"); + BufferedImage actual = readImageFromResources("actual#217c.png"); + BufferedImage expectedResult = readImageFromResources("result#217c.png"); + + //when + ImageComparisonResult imageComparisonResult = + new ImageComparison(expected, actual) + .setPixelToleranceLevel(0.0) + .compareImagesIgnoreBackground(null); + + //then + assertEquals(MISMATCH, imageComparisonResult.getImageComparisonState()); + assertImagesEqual(expectedResult, imageComparisonResult.getResult()); + } + + private void assertImagesEqual(BufferedImage expected, BufferedImage actual) { if (expected.getWidth() != actual.getWidth() || expected.getHeight() != actual.getHeight()) { fail("Images have different dimensions"); diff --git a/src/test/java/com/github/romankh3/image/comparison/ImageComparisonUtilUnitTest.java b/src/test/java/com/github/romankh3/image/comparison/ImageComparisonUtilUnitTest.java index 9f2a2e9..7e83359 100644 --- a/src/test/java/com/github/romankh3/image/comparison/ImageComparisonUtilUnitTest.java +++ b/src/test/java/com/github/romankh3/image/comparison/ImageComparisonUtilUnitTest.java @@ -160,7 +160,7 @@ public void shouldProperlyWorkInBug136() { @Test public void shouldProperlyHandleBug180FromRoot() { //given - String imagePath = "build/resources/test/result.png"; + String imagePath = "build/test-images/result.png"; //when BufferedImage result = ImageComparisonUtil.readImageFromResources(imagePath); diff --git a/src/test/resources/actual#217a.png b/src/test/resources/actual#217a.png new file mode 100644 index 0000000000000000000000000000000000000000..8eb6bb4be730398942da0e5ae23d8b8a98369d9c GIT binary patch literal 17243 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/actual#217c.png b/src/test/resources/actual#217c.png new file mode 100644 index 0000000000000000000000000000000000000000..75036efd4f4cca55e7230f181d236a76ebd990d5 GIT binary patch literal 3799 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/expected#217a.png b/src/test/resources/expected#217a.png new file mode 100644 index 0000000000000000000000000000000000000000..1b0edfb3bec4380eb634f5464c18cd71195d4d27 GIT binary patch literal 17713 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 XGsfzzJ}2-OatQR{uQj~V#)SS4@)S9> literal 0 HcmV?d00001 diff --git a/src/test/resources/result#217c.png b/src/test/resources/result#217c.png new file mode 100644 index 0000000000000000000000000000000000000000..57668a8f84cf82beb1859cdc12e1b546ca4fca52 GIT binary patch literal 1673 zcmV;426p+0P)002V>0ssI2lzo|2000J1NklKPJ#vj)G4vh1dXqetNzYMG)ael(>v zbThsE{o|nce0iUy(?`18pQh>k_*(8>kGm&Gs-SEi9~Q*612l!2x$n}37WP=rS^2GLqe`Q zeY~EZ@u+%<=7p??Rb_Wa=+>rD`=qd#gq2`B83I+gosMdX4nNfPysI{ZOQ6}9Zi#IW zUaDszIy{g11HrH7Lk`2Jz2S(2=#IMgT#qk_$k<;=jZ+q}X!{{184N)=al|kLZR|K2 z*UXfn?-5dLdEP=1UIK!VjE|%60Ddyt1S?ma(X6p_6crI z!~5?~uxTwHrP?E*h^;5snr?}0D+yNmBPM3FnG7prPBZ&?itZ)-?r4kvhUIKhKs ziv&CF2q$=OIKhL%2_76y@ZfNQ2Zs|pIGo_Y;RFv3CwOoKg8ff}1LF<^hfgA{kBtLT zkqtDf@ZgPnC`&$ME%=Hh$||_9C{wa3S^|tuSjWKk2rhoK{c=-YNsX>lIle_n;UIo? zt#BNO3^Vdu2EklRMU1L;iPB?ZJ;9|0BMi3*X6TyBs3HqQq7n|$&opRa3OdCe8Hiw< z*18FU;ob6^BA8^CL6Hfbkl&+!`&Yhz;4aO)D5>B^B&j^gK_CfM#RS6P04lIjn~l5& zL?M{OJ1_KVqL<*5AxtM$M_UoVh%BXql3-O#+)AgvvQ_g}3dVr32a9^a26_mFN2k)rn} z_9j8Nlmx3{OeSFAN*@t5MH_Dtm}lC87Qx~#O0j9~CX)IS|0Vu_RUm}X+1StqSo_Q2 zqd>aGF%+EO!QliC4kvhUIKhL%2_76y@ZfNQ2Zs|pIGo_Y;RFv3CwOo;!GpsI9vo{3 zUQ`a?=*Leub_Ky>7N>0hKjPRG1UnuHPVnF;1fy5P=CTCdDpI{pEi{k)sO}t>%h+W! z==HDN`GXe;;i{TB+iVyMq(w!z5UhV`;1IL=M_)Lpl#0sf9$XEUrJtqA;wolgB$&Mu zR=x?q04KPNEpx;2NEw^;T??$lPOAX?c5S+~KvHzaE2aCF1~wPNlJMNZ`AUgn$-jW! zpR?wc!4O9I5-gm0%IX+6!N}v$Xda{rANAcKvXTgFPxx8HuU50yg0(<7HF>3@e`)L% z(?ft>nv$ccPQ60AZ7`4ibSu4(DRs5L*QUo{0IN8Mn1vS2Qf5bd=tY^*TATv~{mK+} zKS~(=OH<;QzB!;QTpNXY@`|v)jKMsPf0^L4qvU`sfvn8V30`EI0!xY7e}96Fg=?dD zPl@l;Ib*Ozu=e1$v4&t8(I~OV+41%!@2-HQMCs=#x@T$dfEvlxTsT*#_5{>@w{5UV zaQX>_27D6$IY(fuB{)w3fr+;wkoD=n0NUJWr9 z-XfUzgq|u)gH^v3f;R+i==LG0+77lyuzHl(Hk{xVZkYrf9OA~mRcBe)GQs}