diff --git a/mo/jobs/protocols.py b/mo/jobs/protocols.py
index 3ba6498f3076aa9eabc70ef11739709500a80bc4..8c2db41304f288e7c1f07b57c855ee2f2affffe6 100644
--- a/mo/jobs/protocols.py
+++ b/mo/jobs/protocols.py
@@ -20,6 +20,7 @@ from mo.jobs import TheJob, job_handler
from mo.util import logger, part_path, tex_arg
import mo.util_format
+SCAN_BW_THRESHOLD = 180 # 0-255, pixel nad toto číslo = bílý pixel
#
# Job create_protocols: Vygeneruje formuláře protokolů
@@ -355,10 +356,10 @@ def _process_scan_file(args: ScanJobArgs) -> ScanJobResult:
)
del page_img
- full_img = full_img.convert('L') # Grayscale
- full_size = full_img.size
+ (full_width, full_height) = full_img.size
+ test_img = full_img.convert('L').point(lambda x: 255 if x > SCAN_BW_THRESHOLD else 0, mode='1')
- codes = pyzbar.decode(full_img, symbols=[pyzbar.ZBarSymbol.QRCODE])
+ codes = pyzbar.decode(test_img, symbols=[pyzbar.ZBarSymbol.QRCODE])
codes = [c for c in codes if c.type == 'QRCODE' and c.data.startswith(b'MO:')]
qr = None
if codes:
@@ -372,7 +373,7 @@ def _process_scan_file(args: ScanJobArgs) -> ScanJobResult:
full_img.save(f'{args.out_prefix}-{page_nr:04d}-full.png')
- small_img = full_img.resize((full_size[0] // 4, full_size[1] // 4))
+ small_img = full_img.resize((full_width // 4, full_height // 4))
small_img.save(f'{args.out_prefix}-{page_nr:04d}-small.png')
logger.debug(f'Scan: Strana #{page_nr}: {qr}')