From 0f8706f72bca22abdcc1ec950669aafec5d95207 Mon Sep 17 00:00:00 2001
From: Ruben Young On <r.d.youngon@student.tudelft.nl>
Date: Mon, 27 May 2019 12:04:29 +0200
Subject: [PATCH] Simplified fix_corner_markers

---
 zesje/images.py    | 6 ++----
 zesje/pregrader.py | 6 +++++-
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/zesje/images.py b/zesje/images.py
index b4728afc..ff8669e5 100644
--- a/zesje/images.py
+++ b/zesje/images.py
@@ -54,8 +54,6 @@ def fix_corner_markers(corner_keypoints, shape):
     -------
     corner_keypoints :
         A list of four corner markers.
-    top_left : tuple
-        Coordinates of the top left corner marker
     """
 
     if len(corner_keypoints) == 4:
@@ -78,7 +76,6 @@ def fix_corner_markers(corner_keypoints, shape):
         # Top left point is missing
         (dx, dy) = tuple(map(sub, top_right[0], bottom_right[0]))
         missing_point = tuple(map(add, bottom_left[0], (dx, dy)))
-        top_left = [missing_point]
 
     elif not bottom_left:
         # Bottom left point is missing
@@ -95,7 +92,8 @@ def fix_corner_markers(corner_keypoints, shape):
         (dx, dy) = tuple(map(sub, top_left[0], bottom_left[0]))
         missing_point = tuple(map(sub, top_right[0], (dx, dy)))
 
-    return top_left[0], corner_keypoints + [missing_point]
+    corner_keypoints.append(missing_point)
+    return corner_keypoints
 
 
 def box_is_filled(image_array, box_coords, padding=0.3, threshold=150, pixels=False):
diff --git a/zesje/pregrader.py b/zesje/pregrader.py
index 4954bc8a..e667bef2 100644
--- a/zesje/pregrader.py
+++ b/zesje/pregrader.py
@@ -22,7 +22,11 @@ def add_feedback_to_solution(sub, exam, page, page_img, corner_keypoints):
     """
     problems_on_page = [problem for problem in exam.problems if problem.widget.page == page]
 
-    top_left_point, fixed_corner_keypoints = fix_corner_markers(corner_keypoints, page_img.shape)
+    fixed_corners = fix_corner_markers(corner_keypoints, page_img.shape)
+
+    x_min = min(point[0] for point in fixed_corners)
+    y_min = min(point[1] for point in fixed_corners)
+    top_left_point = (x_min, y_min)
 
     for problem in problems_on_page:
         sol = Solution.query.filter(Solution.problem_id == problem.id, Solution.submission_id == sub.id).one_or_none()
-- 
GitLab