From ab5dc2f46b895112345df6c3934aad91cad10593 Mon Sep 17 00:00:00 2001 From: Yannik Hampe Date: Thu, 29 Feb 2024 09:19:41 +0100 Subject: [PATCH] RED-8481: use visual layout parser for signature extraction --- .../redaction-service-server-v1/build.gradle.kts | 2 +- .../v1/server/model/document/nodes/Image.java | 14 +++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/redaction-service-v1/redaction-service-server-v1/build.gradle.kts b/redaction-service-v1/redaction-service-server-v1/build.gradle.kts index ee2c3f46..59bdcaf3 100644 --- a/redaction-service-v1/redaction-service-server-v1/build.gradle.kts +++ b/redaction-service-v1/redaction-service-server-v1/build.gradle.kts @@ -12,7 +12,7 @@ plugins { description = "redaction-service-server-v1" -val layoutParserVersion = "0.93.0" +val layoutParserVersion = "0.94.0" val jacksonVersion = "2.15.2" val droolsVersion = "9.44.0.Final" val pdfBoxVersion = "3.0.0" diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/Image.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/Image.java index 59e024d9..8b3b7814 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/Image.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/nodes/Image.java @@ -135,10 +135,14 @@ public class Image implements GenericSemanticNode, IEntity { Map bboxImage = image.getBBox(); Map bbox = this.getBBox(); - Rectangle2D intersection = bboxImage.get(this.page).createIntersection(bbox.get(this.page)); - double calculatedIntersection = intersection.getWidth() * intersection.getHeight(); - double area = bbox.get(this.page).getWidth() * bbox.get(this.page).getHeight(); - return (calculatedIntersection / area) > containmentThreshold; + //image needs to be on the same page + if(bboxImage.get(this.page) != null) { + Rectangle2D intersection = bboxImage.get(this.page).createIntersection(bbox.get(this.page)); + double calculatedIntersection = intersection.getWidth() * intersection.getHeight(); + double area = bbox.get(this.page).getWidth() * bbox.get(this.page).getHeight(); + return (calculatedIntersection / area) > containmentThreshold; + } + return false; } @@ -146,7 +150,7 @@ public class Image implements GenericSemanticNode, IEntity { Map bboxImage = image.getBBox(); Map bbox = this.getBBox(); - Rectangle2D intersection = bboxImage.get(this.page).createIntersection(bbox.get(this.page)); + Rectangle2D intersection = bbox.get(this.page).createIntersection(bboxImage.get(this.page)); double calculatedIntersection = intersection.getWidth() * intersection.getHeight(); double area = bbox.get(this.page).getWidth() * bbox.get(this.page).getHeight(); return (area / calculatedIntersection) > containmentThreshold;