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
No related branches found
No related tags found
1 merge request!126Vylepšení skenování - prázdné stránky, otáčení, vylepšení UI
This commit is part of merge request !126. Comments created here will be created in the context of that merge request.
...@@ -20,6 +20,7 @@ from mo.jobs import TheJob, job_handler ...@@ -20,6 +20,7 @@ from mo.jobs import TheJob, job_handler
from mo.util import logger, part_path, tex_arg from mo.util import logger, part_path, tex_arg
import mo.util_format import mo.util_format
SCAN_BW_THRESHOLD = 180 # 0-255, pixel nad toto číslo = bílý pixel
# #
# Job create_protocols: Vygeneruje formuláře protokolů # Job create_protocols: Vygeneruje formuláře protokolů
...@@ -355,10 +356,10 @@ def _process_scan_file(args: ScanJobArgs) -> ScanJobResult: ...@@ -355,10 +356,10 @@ def _process_scan_file(args: ScanJobArgs) -> ScanJobResult:
) )
del page_img del page_img
full_img = full_img.convert('L') # Grayscale (full_width, full_height) = full_img.size
full_size = 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:')] codes = [c for c in codes if c.type == 'QRCODE' and c.data.startswith(b'MO:')]
qr = None qr = None
if codes: if codes:
...@@ -372,7 +373,7 @@ def _process_scan_file(args: ScanJobArgs) -> ScanJobResult: ...@@ -372,7 +373,7 @@ def _process_scan_file(args: ScanJobArgs) -> ScanJobResult:
full_img.save(f'{args.out_prefix}-{page_nr:04d}-full.png') 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') small_img.save(f'{args.out_prefix}-{page_nr:04d}-small.png')
logger.debug(f'Scan: Strana #{page_nr}: {qr}') 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 register or to comment