From 85cad66ade28fd482beee57b4b01951ec2b93dfd Mon Sep 17 00:00:00 2001 From: deiflaender Date: Fri, 19 Aug 2022 13:26:25 +0200 Subject: [PATCH] RED-5022: Add figure detection values the same way as normal images --- .../model/image/ImageServiceResponse.java | 2 ++ .../v1/server/segmentation/ImageService.java | 35 +++++++++++++++---- 2 files changed, 30 insertions(+), 7 deletions(-) diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/ImageServiceResponse.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/ImageServiceResponse.java index d795a52f..e91864c7 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/ImageServiceResponse.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/ImageServiceResponse.java @@ -21,6 +21,8 @@ public class ImageServiceResponse { @JsonAttribute(alternativeNames = {"imageMetadata"}) private List data = new ArrayList<>(); + private List dataCV = new ArrayList<>(); + @JsonProperty(value = "imageMetadata") @JsonAlias("data") @JsonAttribute(alternativeNames = {"imageMetadata"}) diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/ImageService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/ImageService.java index 5daceb37..e6a7ccd4 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/ImageService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/ImageService.java @@ -27,26 +27,48 @@ public class ImageService { private final ObjectMapper objectMapper; private final RedactionStorageService redactionStorageService; + @SneakyThrows - public Map> convertImages(String dossierId, String fileId){ + public Map> convertImages(String dossierId, String fileId) { var imageClassificationStream = redactionStorageService.getStoredObject(RedactionStorageService.StorageIdUtils.getStorageId(dossierId, fileId, FileType.IMAGE_INFO)); - ImageServiceResponse imageServiceResponse = objectMapper.readValue(imageClassificationStream, ImageServiceResponse.class); Map> images = new HashMap<>(); imageServiceResponse.getData().forEach(imageMetadata -> { - var classification = imageMetadata.getFilters().isAllPassed() ? ImageType.valueOf(imageMetadata.getClassification().getLabel().toUpperCase(Locale.ROOT)) : ImageType.OTHER; - images.computeIfAbsent(imageMetadata.getPosition().getPageNumber() ,x -> new ArrayList<>()) - .add(new PdfImage(new RedRectangle2D(imageMetadata.getPosition().getX1(), imageMetadata.getPosition().getY1(), imageMetadata.getGeometry().getWidth(), imageMetadata.getGeometry().getHeight()), classification,imageMetadata.isAlpha(), imageMetadata.getPosition().getPageNumber())); + var classification = imageMetadata.getFilters() + .isAllPassed() ? ImageType.valueOf(imageMetadata.getClassification() + .getLabel() + .toUpperCase(Locale.ROOT)) : ImageType.OTHER; + images.computeIfAbsent(imageMetadata.getPosition().getPageNumber(), x -> new ArrayList<>()) + .add(new PdfImage(new RedRectangle2D(imageMetadata.getPosition() + .getX1(), imageMetadata.getPosition().getY1(), imageMetadata.getGeometry() + .getWidth(), imageMetadata.getGeometry() + .getHeight()), classification, imageMetadata.isAlpha(), imageMetadata.getPosition() + .getPageNumber())); + }); + + // Currently This is a copy but, it will be changed later because i don' t think that we should unclassified images. + imageServiceResponse.getDataCV().forEach(imageMetadata -> { + var classification = imageMetadata.getFilters() + .isAllPassed() ? ImageType.valueOf(imageMetadata.getClassification() + .getLabel() + .toUpperCase(Locale.ROOT)) : ImageType.OTHER; + images.computeIfAbsent(imageMetadata.getPosition().getPageNumber(), x -> new ArrayList<>()) + .add(new PdfImage(new RedRectangle2D(imageMetadata.getPosition() + .getX1(), imageMetadata.getPosition().getY1(), imageMetadata.getGeometry() + .getWidth(), imageMetadata.getGeometry() + .getHeight()), classification, imageMetadata.isAlpha(), imageMetadata.getPosition() + .getPageNumber())); }); return images; } - public void findOcr(Page page){ + public void findOcr(Page page) { + page.getImages().forEach(image -> { if (image.getImageType().equals(ImageType.OTHER)) { page.getTextBlocks().forEach(textblock -> { @@ -59,5 +81,4 @@ public class ImageService { }); } - }