diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/LayoutParsingPipeline.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/LayoutParsingPipeline.java index 81aa0de..8d421e3 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/LayoutParsingPipeline.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/LayoutParsingPipeline.java @@ -282,7 +282,7 @@ public class LayoutParsingPipeline { } if (signatures.containsKey(pageNumber)) { - if (classificationPage.getImages() == null || classificationPage.getImages().size() == 0) { + if (classificationPage.getImages() == null || classificationPage.getImages().isEmpty()) { classificationPage.setImages(signatures.get(pageNumber)); } else { classificationPage.getImages().addAll(signatures.get(pageNumber)); diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/adapter/CvTableParsingAdapter.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/adapter/CvTableParsingAdapter.java index 77c1681..e883cd8 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/adapter/CvTableParsingAdapter.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/adapter/CvTableParsingAdapter.java @@ -6,13 +6,11 @@ import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; import org.springframework.stereotype.Service; import com.knecon.fforesight.service.layoutparser.processor.model.table.Ruling; import com.knecon.fforesight.service.layoutparser.processor.python_api.model.table.PageInfo; -import com.knecon.fforesight.service.layoutparser.processor.python_api.model.table.TableCell; import com.knecon.fforesight.service.layoutparser.processor.python_api.model.table.TableLine; import com.knecon.fforesight.service.layoutparser.processor.python_api.model.table.TableServiceResponse; diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/table/TableData.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/table/TableData.java index 7a793d1..c317fc7 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/table/TableData.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/python_api/model/table/TableData.java @@ -14,7 +14,7 @@ import lombok.NoArgsConstructor; @AllArgsConstructor public class TableData { - private PageInfo pageInfo;; + private PageInfo pageInfo; private List tableLines = new ArrayList<>(); } diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/RulingCleaningService.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/RulingCleaningService.java index 4095e90..d5a7626 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/RulingCleaningService.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/RulingCleaningService.java @@ -35,10 +35,10 @@ public class RulingCleaningService { Rulings verticalAndHorizontalRulingLines; // todo 8642: set cv parsed only when no rulings exist or just always add them? - if (!rulings.isEmpty()) { - verticalAndHorizontalRulingLines = extractVerticalAndHorizontalRulingLines(rulings); - } else { + if (rulings.isEmpty() && parsedRulings != null) { verticalAndHorizontalRulingLines = extractVerticalAndHorizontalRulingLines(parsedRulings); + } else { + verticalAndHorizontalRulingLines = extractVerticalAndHorizontalRulingLines(rulings); } verticalAndHorizontalRulingLines.verticalLines.sort(X_FIRST_RULING_COMPARATOR); @@ -81,7 +81,7 @@ public class RulingCleaningService { Rectangle rectangle2 = rectangles.get(j); // we can stop early when we are too far off because of x-y-sorting - if(rectangle1.getRight() < rectangle2.getLeft() && rectangle1.getBottom() < rectangle2.getTop()) { + if (rectangle1.getRight() < rectangle2.getLeft() && rectangle1.getBottom() < rectangle2.getTop()) { break; } @@ -159,43 +159,19 @@ public class RulingCleaningService { private Rulings extractVerticalAndHorizontalRulingLines(List rulings) { List vrs = new ArrayList<>(); - for (Ruling vr : rulings) { - if (vr.vertical()) { - vrs.add(vr); + List hrs = new ArrayList<>(); + for (Ruling r : rulings) { + if (r.vertical()) { + vrs.add(r); + } + if (r.horizontal()) { + hrs.add(r); } } - List hrs = new ArrayList<>(); - for (Ruling hr : rulings) { - if (hr.horizontal()) { - hrs.add(hr); - } - } return new Rulings(vrs, hrs); } - - private Ruling createRuling(float tableCellX0, float tableCellX1, float tableCellY0, float tableCellY1) { - - float x0 = tableCellX0; - float x1 = tableCellX1; - float y0 = tableCellY0; - float y1 = tableCellY1; - - if (x1 < x0) { - x0 = tableCellX1; - x1 = tableCellX0; - } - - if (y1 < y0) { - y0 = tableCellY1; - y1 = tableCellY0; - } - - return new Ruling(new Point2D.Float(x0, y0), new Point2D.Float(x1, y1)); - } - - private record Rulings(List verticalLines, List horizontalLines) { }