Skip to content
Snippets Groups Projects
Commit 0158f02e authored by Jiří Setnička's avatar Jiří Setnička
Browse files

Skeny: Detekce QR kódu na černobílém obrázku

Použit práh 180 (value > 180 = bílý pixel). Detekuje QR kódy lépe, než
detekce na šedém obrázku.

Obrázek pro zobrazení při třídění ukládáme barevný, předtím byl šedý.
parent a8d2c413
Branches
No related tags found
1 merge request!126Vylepšení skenování - prázdné stránky, otáčení, vylepšení UI
......@@ -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}')
......
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment