Skip to content
Snippets Groups Projects
Commit 9d46ed71 authored by Ruben Young On's avatar Ruben Young On
Browse files

fix_corner_markers now raises runtime †error if fewer than 3 corner markers are found

parent e9a90c01
No related branches found
No related tags found
1 merge request!17Add pregrading
Pipeline #17948 passed
......@@ -59,7 +59,7 @@ def fix_corner_markers(corner_keypoints, shape):
"""
if len(corner_keypoints) == 4 or len(corner_keypoints) < 3:
return corner_keypoints
raise RuntimeError("Fewer then 3 corner markers found")
x_sep = shape[1] / 2
y_sep = shape[0] / 2
......
......@@ -22,7 +22,6 @@ 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]
# TODO: What if less than 3 keypoints are found?
top_left_point, fixed_corner_keypoints = fix_corner_markers(corner_keypoints, page_img.shape)
for problem in problems_on_page:
......
......@@ -339,7 +339,12 @@ def process_page(image_data, exam_config, output_dir=None, strict=False):
return True, "Testing, image not saved and database not updated."
sub, exam = update_database(image_path, barcode)
add_feedback_to_solution(sub, exam, barcode.page, image_array, corner_keypoints)
try:
add_feedback_to_solution(sub, exam, barcode.page, image_array, corner_keypoints)
except RuntimeError as e:
if strict:
return False, str(e)
if barcode.page == 0:
description = guess_student(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment