diff --git a/cv_analysis/layout_parsing.py b/cv_analysis/layout_parsing.py index 1bd81be..cd332a8 100644 --- a/cv_analysis/layout_parsing.py +++ b/cv_analysis/layout_parsing.py @@ -3,10 +3,11 @@ from typing import Iterable import cv2 import numpy as np -from funcy import compose, rcompose, first, lkeep +from funcy import compose, rcompose, lkeep -from cv_analysis.utils.merging import connect_related_rectangles +from cv_analysis.utils.common import find_contours from cv_analysis.utils.conversion import box_to_rectangle +from cv_analysis.utils.merging import connect_related_rectangles from cv_analysis.utils.postprocessing import remove_included, has_no_parent from cv_analysis.utils.rectangle import Rectangle @@ -49,11 +50,6 @@ def __find_segments(image): return rectangles -def find_contours(image): - contours, hierarchies = cv2.findContours(image, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) - return contours, first(hierarchies) - - def is_likely_segment(rect, min_area=100): # FIXME: Parameterize via factory return cv2.contourArea(rect, False) > min_area diff --git a/cv_analysis/utils/common.py b/cv_analysis/utils/common.py new file mode 100644 index 0000000..1d71794 --- /dev/null +++ b/cv_analysis/utils/common.py @@ -0,0 +1,7 @@ +import cv2 +from funcy import first + + +def find_contours(image): + contours, hierarchies = cv2.findContours(image, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) + return contours, first(hierarchies)