Merge in RR/cv-analysis from remove_pil to master
Squashed commit of the following:
commit 83c8d88f3d48404251470176c70979ee75ae068b
Author: Julius Unverfehrt <julius.unverfehrt@iqser.com>
Date: Thu Jul 21 10:51:51 2022 +0200
remove deprecated server tests
commit cebc03b5399ac257a74036b41997201f882f5b74
Author: Julius Unverfehrt <julius.unverfehrt@iqser.com>
Date: Thu Jul 21 10:51:08 2022 +0200
remove deprecated server tests
commit ce2845b0c51f001b7b5b8b195d6bf7e034ec4e39
Author: Julius Unverfehrt <julius.unverfehrt@iqser.com>
Date: Wed Jul 20 17:05:00 2022 +0200
repair tests to work without pillow WIP
commit 023fdab8322f28359a24c63e32635a3d0deccbe4
Author: Isaac Riley <Isaac.Riley@iqser.com>
Date: Wed Jul 20 16:40:36 2022 +0200
fixed typo
commit 33850ca83a175f74789ae6b9bebd057ed84b7fb3
Author: Isaac Riley <Isaac.Riley@iqser.com>
Date: Wed Jul 20 16:38:37 2022 +0200
fixed import from refactored open_img.py
commit dbc6d345f074e538948e2c4f94ebed8a5ef520bc
Author: Isaac Riley <Isaac.Riley@iqser.com>
Date: Wed Jul 20 16:32:42 2022 +0200
removed PIL from production code, now inly in scripts
52 lines
2.0 KiB
Python
52 lines
2.0 KiB
Python
"""
|
|
Usage:
|
|
python scripts/annotate.py /home/iriley/Documents/pdf/scanned/10.pdf 5 --type table --show
|
|
python scripts/annotate.py /home/iriley/Documents/pdf/scanned/10.pdf 5 --type redaction --show
|
|
python scripts/annotate.py /home/iriley/Documents/pdf/scanned/10.pdf 5 --type layout --show
|
|
python scripts/annotate.py /home/iriley/Documents/pdf/scanned/10.pdf 5 --type figure --show
|
|
"""
|
|
|
|
import argparse
|
|
|
|
from cv_analysis.utils.display import show_image
|
|
from cv_analysis.utils.draw import draw_contours, draw_rectangles
|
|
from cv_analysis.utils.open_pdf import open_pdf
|
|
from cv_analysis.utils.visual_logging import vizlogger
|
|
|
|
|
|
def parse_args():
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument("pdf_path")
|
|
parser.add_argument("--page_index", type=int, default=0)
|
|
parser.add_argument("--type", choices=["table", "redaction", "layout", "figure"], default="table")
|
|
parser.add_argument("--show", action="store_true", default=False)
|
|
args = parser.parse_args()
|
|
return args
|
|
|
|
|
|
def annotate_page(page_image, analysis_function, drawing_function, name="tmp.png", show=True):
|
|
result = analysis_function(page_image)
|
|
page_image = drawing_function(page_image, result)
|
|
vizlogger.debug(page_image, "redactions05_output.png")
|
|
show_image(page_image)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
args = parse_args()
|
|
page = open_pdf(args.pdf_path, first_page=args.page_index, last_page=args.page_index)[0]
|
|
name = f"{args.type}_final_result.png"
|
|
draw = draw_rectangles
|
|
if args.type == "table":
|
|
from cv_analysis.table_parsing import parse_tables as analyze
|
|
elif args.type == "redaction":
|
|
from cv_analysis.redaction_detection import find_redactions as analyze
|
|
|
|
draw = draw_contours
|
|
elif args.type == "layout":
|
|
from cv_analysis.layout_parsing import parse_layout as analyze
|
|
elif args.type == "figure":
|
|
from cv_analysis.figure_detection.figure_detection_pipeline import make_figure_detection_pipeline
|
|
|
|
analyze = make_figure_detection_pipeline()
|
|
annotate_page(page, analyze, draw, name=name, show=args.show)
|